>>263
てことは、送信は別のスレッドで行って、FD_WRITEに関してはフラグで処理するといった感じになるんですか?

// 送信可能フラグをたてる
case FD_WRITE:
  send_flag = TRUE;
  return 0;

// ファイル送信スレッド
while( read_byte = fread(sendbuf, sizeof(char), MAX_BUFSIZE, fp) ){
  send_flag = FALSE;
  if( send(sock, sendbuf, read_byte, 0)==SOCKET_ERROR ){
    while( WSAGetLastError()==WOULDBLOCK ){
      while( send_flag == FALSE ) Sleep(100);
      send(sock, sendbuf, read_byte, 0);
    }
  }
  memset(sendbuf, NULL, sizeof(sendbuf));
}

こんな感じでいいのかな・・・?