我有一个异步服务器和几个连接它的异步客户端。客户端应该启动连接并保持此连接打开,直到它终止,以便它可以按需发送和接收数据。
我在:
中使用异步客户端和服务器代码https://msdn.microsoft.com/en-us/library/fx6588te%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/bew39x2a%28v=vs.110%29.aspx
我已经创建了IPEndpoint和Socket类对象,以便可以在类中的任何地方调用它们:
static IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("xxx.xxx.xxx.xxx"),12345);
static Socket client = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
我还在StartClient()函数中注释掉了socket闭包,并在服务器上做了同样的事情:
// Client
// Release the socket.
client.Shutdown(SocketShutdown.Both);
client.Close();
// Server
handler.Shutdown(SocketShutdown.Both);
handler.Close();
然后我打电话给客户的
Send(Socket client, String data) like this:
Send(client,"This is test 1<EOF>");
sendDone.WaitOne();
Receive(client);
receiveDone.WaitOne();
Console.WriteLine("Response received : {0}",response);
但我得到各种异常,例如“Socket is null”。
如何启动与服务器的连接,无限期地保持此连接打开并从我的代码的任何部分使用它?