hozugawa.net · A neutral informational page
Insights
- CallNamedPipeで簡易的なパイプ通信を実装する方法Windows APIでプロセス間通信を行う方法には、名前付きパイプ、匿名パイプ、ソケット、共有メモリなどがあります。なかでも名前付きパイプは、同じコンピューター上で動作する別プロセス間のデータ交換に向いており、通信相手をパイプ名で指定できる点が特徴です。…
- CreateNamedPipeで実現する名前付きパイプによるプロセス間通信Windows環境でプロセス間通信を実装する場合、名前付きパイプは非常に有力な選択肢です。ローカルマシン上での動作に特化しており、ACLやImpersonationといったWindows固有の仕組みと高い親和性があります。CreateNamedPipe関数は、サーバー側エンドポイントを作成し、続く接続要求を待機する役割…
- sendとrecv関数によるソケット送受信のタイムアウト完全ガイドWindowsソケットプログラミングではsendとrecvが同期I/Oの代表格として広く使われています。デフォルトでは送信バッファに空きができるまでsendが止まり、到着データが存在するまでrecvがブロックされるため、ネットワーク状態の悪化や相手側のハングアップがそのまま応答不能に直結します。GUIを持つクライアント…
- WinSockのconnect関数でサーバーに接続する基本と実装Windows環境でネットワークプログラミングを行うための最も基本的なAPIがconnect関数です。Winsock(Windows Sockets)に含まれ、クライアント側からリモートホストへ接続要求を送る役割を担います。戻り値で成功と失敗を判定でき、ネットワークアプリケーション実装の土台を支えます。…
- accept関数でクライアント接続を受け入れるWinsock実装ガイドWinsockプログラミングにおいて、サーバ側ソケットの動作の中核を担うのがaccept関数です。listen関数で接続待ちに入ったソケットに対し、クライアントからの接続要求が到達した時点でacceptを呼び出すことで、新しいソケットディスクリプタが生成され、実際のデータ送受信が始まります。Win32環境でソケットサー…
- Windowsソケットでbindとlistenを使いサーバーソケットを準備する手順サーバーソケットは、ネットワークアプリケーションの中核を成す要素であり、複数のクライアントからの接続を待ち受ける役割を担います。Windows環境では Winsock2 (WS2_32.dll) がこの機能を提供し、BSDソケットと同様のインターフェースを通じてプログラマがソケットを扱えるようになっています。…
- Winsock socket関数でTCP/UDPソケットを作成する手順ネットワークプログラミングを始めるにあたって、Windows環境では Winsock (Windows Sockets) API が標準的に利用されます。通信の基盤となるソケットを生成するのが socket 関数であり、トランスポート層プロトコルとして TCP と UDP…
- WSAGetLastErrorとWSAStartupでWinsockを初期化するWindowsでTCP/IP通信やUDP通信を実装するには、ソケット関数を呼び出す前にWinsockの利用準備を整える必要があります。中心となるのが、Winsock DLLを初期化するWSAStartup関数と、直前の関数呼び出しで発生した通信エラーを取得するWSAGetLastError関数です。…
- CreateIoCompletionPortでI/O完了ポートを実装する手順と要点Windowsで高負荷なネットワークサーバーやファイルI/Oを扱うプログラムを書くとき、スレッドの生成とコンテキスト切り替えがボトルネックになる場面があります。I/O完了ポート(IOCP)は、カーネル側でスレッドプールを管理し、完了した入出力だけを効率よくワーカースレッドへ配信する仕組みです。…
- Windows時間計測APIの精度を徹底検証Windows環境で経過時間を測る際、多くの開発者は GetTickCount を真っ先に思い浮かべるかもしれません。しかし、高精度な計測が求められる場面では QueryPerformanceCounter…