>>270
WinSockで

FD_SET(0, &r_fd);
select(sd+1, &r_fd, NULL, NULL, NULL);
if(FD_ISSET(0, &r_fd)){
 memset(buf, 0, sizeof(buf));
 fgets(buf, RECVSIZE - 1, stdin);
 send(sd, buf, lstrlen(buf), 0);
}

これ(標準入力をselectで待つ)できたっけ?
Cygwinのgccならその辺エミュレートしてるから動くだろうが、その場合
WSAStartupとかやる必要ないし。なんかUnix流のやり方とWinSockの
やり方がごっちゃになってるような…