ShootingStarをwin32に移植してみた

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/asteroid/?root=svn
すでに公式でWindowsへの対応が表明されているけど、勉強ってことで。WinSock2が使える環境なら、たぶんビルド可能。

とりあえず「5分で作るチャット」を作って、FirefoxOperaで動作確認。IEはなんかカチカチ鳴ってるけど、ほかの問題だと思う・・・

仕組みとか

WinSockのEvent関係のAPIを使って、epollをエミュレート。
あとは本体の細かい部分(宣言がブロックの先頭にない、EAGAIN→EWOULDBLOCK…etc)、ちまちまと修正。

#ifdef _WIN32で必要な部分だけ処理を変えればいいかなと思ってたら、あまりのインターフェースの違いに断念。ふつーにselectを使ってもよかったかも。

問題点

  • 「64 ソケット」制限
    • 解決策ってあるのかな…
  • 通信中にサーバを落とすとクライアントまで落ちる(w