以下の Web site にサンプルソースとともに簡潔にまとめられていた。
素晴らしい。
URL: http://www.ueda.info.waseda.ac.jp/~toyama/network/example2.html

以下のマシンでテストした。

サーバ -> Cygwin on WindowsXP
クライアント -> Debian GNU Linux squeeze (testing)

make 時の注意

  • Debian では libsocket が見つからなくてリンクエラーになった。
    Linux では不要らしいので、Makefile 中の -lsocket を削除した。
  • Cygwin では libsocket と libnsl が見つからなくてリンクエラーに
    なった。両方とも cygwin1.dll に含まれているらしいので、Makefile 中
    の -lsocket と -lnsl を削除した。

テスト

  • Cygwin で iserver.exe を実行し、クライアントからの通信待ち受け状
    態にした。
  • Linux で iclient を実行した。そのまま文字列を打ち込んだら、大文字
    に変換されて表示された。成功!

補足

  • 大文字への変換は iserver.c の toupper() で行っている。iclient は
    標準入力から受け取った文字列をサーバに送り、送り返された文字列を
    printf() しているだけ。