Programming基礎[1997/11/26]■初めにWindowsでWinSockを利用したインターネットプログラムの作成方法を解説するページです。C言語使って解説しますが、C言語の基本的な説明はいたしません。TCP/IPについても詳しく触れません。ここでは、WinSockを利用するにあたって最低限必要だと思われるものを解説します。Interfaceを利用して通信を行うWindows用のライブラリです。要は、インターネットで通信を行うときに使うAPIの集まりです。UNIXの世界のものでしたが、MicrosoftがWindowsで使用するために拡張したものです。WinSockでは、ソケットと呼ばれる通信の端点に対して、アプリケーションがAPIを呼び出すことにより通信を行うことができます。ソケットは、TCPとUDPなどのプロトコルで使用します。■サーバとクライアントサーバとは、サービス(機能)を提供するプログラムのことです。HTTPサーバやFTPサーバなどです。クライアントとは、サービス(機能)を受けるプログラムのことです。WebブラウザやFTPクライアントなどです。■TCPとUDPWinSockでは、TCPとUDPの2通りの通信方法を選択できます。TCPは、コネクション型やストリーム型と呼ばれ、サーバとクライアントの1対1で接続して通信を行います。アプリケーションは届いたデータの順序やデータが壊れていないかなどの心配は必要ありません。信頼性が高い通信方法です。UDPは、コネクションレス型やデータグラム型と呼ばれ、指定のIPアドレスとポート番号で直接データ送受信を行います。複数のマシンなどに同時にデータを送信することなどができます。アプリケーションが届いたデータの順序を揃えたり、データが壊れていないかチェックする必要があります。信頼性より通信速度を優先する場合に使えます。■ホスト名とIPアドレスとポート番号インターネットで通信を行うときは、サーバにもクライアントにもIPアドレスが必要です。IPアドレスとは、32bitの整数で表してマシンを特定するもの(IPv4)です。普段使う場合は、4オクテットを1オクテットずつドットで区切って表します。IPアドレスでは覚えにくいので、ホスト名があります。ホスト名とは、マシンに付けられる名前です。www.hogehoge.comのような感じです。実際に通信を行う場合はIPアドレスで行うので、ホスト名をIPアドレスに変換する必要があります。ポート番号は、一つのマシンで複数のサーバを起動している場合などに、どのサーバに接続するかを指定する番号です。■同期型と非同期型WinSockには、同期型のAPIと非同期型のAPIが用意されています。ライブラリとの互換性があります。処理を占有するので、GUIを使ったアプリケーションの場合は、マルチスレッドなどを使って、処理が停止しないようにする必要があります。データ受信処理は受信が完了するまで処理を抜けません。非同期型(拡張API)は、GUIで処理が停止しないようにソケットライブラリをMicrosoftが拡張したものです。データ受信などがウィンドウメッセージとして通知されるため、メッセージが通知されるまで他のウィンドウメッセージを処理することができます。同期型のAPIと組み合わせて使います。Programming。