0
何らかの理由で、クライアントがオープンポートに接続していると思われ、パケットを送信しているように見える場合、サーバーが切断されているように見えます。C#TCP/IPサーバーが接続されていないと表示される
clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, Convert.ToInt32(PORT));
//Bind and listen
clientSocket.Bind(ipEndPoint);
clientSocket.Listen(5);
//Accept incoming
clientSocket.BeginAccept(new AsyncCallback(OnAccept), null);
これ以降は、私のOnAcceptメソッドです。私は(テスト目的のために使用して何かイム)を接続するボックスのクライアントのうちを使用しています
private void OnAccept(IAsyncResult ar)
{
try
{
clientSocket.EndAccept(ar);
if (clientSocket.Connected == true)
{
clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), clientSocket);
}
}
catch (Exception ex)
{
log.Log(ex.ToString(), 2);
}
}
は、しかし、私は耳を傾け、クライアント上で「接続」をクリックする接続を開始するとき。クライアントは「接続済み」状態になり、パケットの送信を開始します。しかし、 "if(clientSocket.Connected == true)"ステートメントは、ブレークポイントを実行した後であっても、タイミング問題ではないため、常に失敗します。
ご意見やご協力をいただければ幸いです。