新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


programing:linux-programing:network-programing:msys2-winsock-network-programing


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programing:linux-programing:network-programing:msys2-winsock-network-programing [2021/07/15 21:52] – [msys2-Windowsネットワークプログラミング(winsock)] yokoprograming:linux-programing:network-programing:msys2-winsock-network-programing [2026/07/28 13:16] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
-msys2-Windowsネットワークプログラミング(winsock) +====== 【msys2Windowsネットワークプログラミング(winsock) ======
-=====================================+
 「[[programing:linux-programing:network-programing:linux-socket-network-programing]]」記事で、Linux標準ソケットによる簡単なTCP通信のサンプルプログラムを動かした。このプログラムをWindows上でも動かせるようにしたので備忘録を残す。 「[[programing:linux-programing:network-programing:linux-socket-network-programing]]」記事で、Linux標準ソケットによる簡単なTCP通信のサンプルプログラムを動かした。このプログラムをWindows上でも動かせるようにしたので備忘録を残す。
  
-msys2でのソケットライブラリー +===== msys2でのソケットライブラリー =====
---------------------------+
 [[software/msys2/start]]でも `#include <sys/socket.h>` などのLinux標準ソケット関数がそのまま利用できれば良いのだが、どうも使えない模様。 [[software/msys2/start]]でも `#include <sys/socket.h>` などのLinux標準ソケット関数がそのまま利用できれば良いのだが、どうも使えない模様。
  
行 11: 行 9:
  
  
-TCPソケット通信サンプルプログラム +===== TCPソケット通信サンプルプログラム =====
------------------------------+
 以下のサンプルプログラムでは、`WINSOCK_USE` の条件コンパイルで、Linux版と兼用できるソースにしている。 以下のサンプルプログラムでは、`WINSOCK_USE` の条件コンパイルで、Linux版と兼用できるソースにしている。
  
行 43: 行 40:
 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,0), &wsaData);     WSAStartup(MAKEWORD(2,0), &wsaData);
 +#else
 +    int sock;
 #endif #endif
  
行 190: 行 185:
  
  
-補足 +===== 補足 =====
-----+
  
   * コンパイル時に、winsock2のライブラリー(`libws2_32.lib`)を明示的に`-lws2_32`指定しなくてもコンパイルエラーなく実行ファイルを生成した。   * コンパイル時に、winsock2のライブラリー(`libws2_32.lib`)を明示的に`-lws2_32`指定しなくてもコンパイルエラーなく実行ファイルを生成した。
-  * MINGW64シェルの64bitコンパイル環境でも、`-lws2_32`を指定すればコンパイルはできたが、実行時の挙動がどうも怪しかった。+  * MINGW64シェルの64bitコンパイル環境でも、`-lws2_32`を指定すればコンパイルは通ったが、実行時の挙動がどうも怪しかった。
  
-関連記事 +===== 関連記事 =====
--------+
  
   * [[programing:linux-programing:network-programing:linux-socket-network-programing]]   * [[programing:linux-programing:network-programing:linux-socket-network-programing]]
行 203: 行 196:
  
  
-参考 +===== 参考 ===== 
-----+ 
 +  [[https://www.geekpage.jp/programming/winsock/|winsockプログラミング]] 
 +  [[https://qiita.com/UchiwaFuujinn/items/c376d8bfbbf0690ba13a?utm_source=pocket_mylist|Windows Console でUDPの送受信]] 
 +  [[https://hayabusa333.hatenadiary.org/entry/20110329/1301358227?utm_source=pocket_mylist|MinGWにてSocket通信を行うには]] 
  
-1. [[https://www.geekpage.jp/programming/winsock/|winsockプログラミング]] 
-2. [[https://qiita.com/UchiwaFuujinn/items/c376d8bfbbf0690ba13a?utm_source=pocket_mylist|Windows Console でUDPの送受信]] 
-3. [[https://hayabusa333.hatenadiary.org/entry/20110329/1301358227?utm_source=pocket_mylist|MinGWにてSocket通信を行うには]] 
  
  
programing/linux-programing/network-programing/msys2-winsock-network-programing.1626353574.txt.gz · 最終更新: by yoko