C#保持异步套接字打开

时间:2016-01-24 21:57:02

标签: c# sockets asynchronous

我有一个异步服务器和几个连接它的异步客户端。客户端应该启动连接并保持此连接打开,直到它终止,以便它可以按需发送和接收数据。

我在:

中使用异步客户端和服务器代码

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”。

如何启动与服务器的连接,无限期地保持此连接打开并从我的代码的任何部分使用它?

0 个答案:

没有答案