programing:linux-programing:network-programing:msys2-winsock-network-programing
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| programing:linux-programing:network-programing:msys2-winsock-network-programing [2021/07/15 12:10] – yoko | programing:linux-programing:network-programing:msys2-winsock-network-programing [2021/07/16 11:34] (現在) – yoko | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | msys2-Windowsネットワークプログラミング(Winsock) | + | 【msys2】Windowsネットワークプログラミング(winsock) |
| ===================================== | ===================================== | ||
| - | 「[[programing: | + | 「[[programing: |
| msys2でのソケットライブラリー | msys2でのソケットライブラリー | ||
| 行 7: | 行 7: | ||
| [[software/ | [[software/ | ||
| - | そこで、`# | + | そこで、`# |
| - | 尚、winsock2ライブラリーは32bit版だけのようで、msys2のMINGW32環境で32bitアプリとしてコンパイルを行う。Windowsの64bitパソコンでも、32bitアプリの実行は可能。 | + | winsock2ライブラリーは32bit版だけのようで、msys2のMINGW32環境で32bitアプリとしてコンパイルを行う。Windowsの64bitパソコンでも、32bitアプリの実行は可能。 |
| TCPソケット通信サンプルプログラム | TCPソケット通信サンプルプログラム | ||
| ----------------------------- | ----------------------------- | ||
| - | 以下の、サンプルプログラムでは、`WINSOCK_USE` の条件コンパイルで、Linux版と兼用できるソースにしている。 | + | 以下のサンプルプログラムでは、`WINSOCK_USE` の条件コンパイルで、Linux版と兼用できるソースにしている。 |
| 尚、システムコール時のエラー判定やタイムアウト監視など不十分なので、実際に使う場合はエラー処理などもよく吟味して利用する事。 | 尚、システムコール時のエラー判定やタイムアウト監視など不十分なので、実際に使う場合はエラー処理などもよく吟味して利用する事。 | ||
| 行 43: | 行 43: | ||
| main(int argc, char *argv[]) | main(int argc, char *argv[]) | ||
| { | { | ||
| + | int n; | ||
| + | struct sockaddr_in server; | ||
| + | char buf[32]; | ||
| #ifdef WINSOCK_USE | #ifdef WINSOCK_USE | ||
| + | SOCKET sock; | ||
| WSADATA wsaData; | WSADATA wsaData; | ||
| - | SOCKET sock; | ||
| - | #else | ||
| - | int sock; | ||
| - | #endif | ||
| - | struct sockaddr_in server; | ||
| - | char buf[32]; | ||
| - | int n; | ||
| - | #ifdef WINSOCK_USE | ||
| // winsock2の初期化 | // winsock2の初期化 | ||
| WSAStartup(MAKEWORD(2, | WSAStartup(MAKEWORD(2, | ||
| + | #else | ||
| + | int sock; | ||
| #endif | #endif | ||
| 行 194: | 行 192: | ||
| * コンパイル時に、winsock2のライブラリー(`libws2_32.lib`)を明示的に`-lws2_32`指定しなくてもコンパイルエラーなく実行ファイルを生成した。 | * コンパイル時に、winsock2のライブラリー(`libws2_32.lib`)を明示的に`-lws2_32`指定しなくてもコンパイルエラーなく実行ファイルを生成した。 | ||
| - | * MINGW64シェルの64bitコンパイル環境でも、`-lws2_32`を指定すればコンパイルはできたが、実行時の挙動がどうも怪しかった。 | + | * MINGW64シェルの64bitコンパイル環境でも、`-lws2_32`を指定すればコンパイルは通ったが、実行時の挙動がどうも怪しかった。 |
| 関連記事 | 関連記事 | ||
| 行 209: | 行 207: | ||
| 2. [[https:// | 2. [[https:// | ||
| 3. [[https:// | 3. [[https:// | ||
| + | |||
| + | |||
programing/linux-programing/network-programing/msys2-winsock-network-programing.1626351005.txt.gz · 最終更新: by yoko
