ネットワーク関連の機能を使って早押しボタンのようなツールを作成しています。
サーバープログラムとクライアントプログラムがあり、サーバー側で使用するポート番号を設定後、クライアント側でIPアドレスとサーバー側で決めたポート番号を入力して接続します。
クライアント側には接続が切れたり通信エラーになると「接続が切れた」という表示をします。
同じ回線を使用する異なるPCで、192.168で始まるIPアドレス(GetMyIPAddressで取得できるIP)を入力すると、ConnectNetWork関数は成功するもののすぐに「接続が切れた」という表示が出ます。
サーバー側のグローバルIPアドレスを入力すると、ConnectNetWorkが失敗します。
サーバー側で何人が接続しているかの表示がありますが、クライアント側でConnectNetWorkが成功しているにも関わらず接続に失敗している模様です。
接続が切れたかの判定にGetLostNetWorkのハンドルと保存されているハンドルを照合する方法でもGetNetWorkAcceptStateを使う方法でもすぐに「接続が切れた」という表示が出ます。
同一のPCでサーバープログラムとクライアントプログラムを起動し、クライアント側から自分のIPを入力すると正常に接続されます。
検索してみたところ、ルーターもしくはファイアウォールに起因する問題のようですが、問題のある箇所を特定できません。
ネットワーク関連の機能を使うには特殊な手順を踏む必要があるのでしょうか?