0
嘿,我想问一个关于c#上的异步套接字通信的问题。除了关闭客户之外,现在一切都很好。当客户端关闭它的连接时,服务器不会立即关闭客户端的工作者套接字。它几秒钟后关闭。我该如何解决这个问题?异步客户端套接字关闭?
嘿,我想问一个关于c#上的异步套接字通信的问题。除了关闭客户之外,现在一切都很好。当客户端关闭它的连接时,服务器不会立即关闭客户端的工作者套接字。它几秒钟后关闭。我该如何解决这个问题?异步客户端套接字关闭?
检查此链接http://msdn.microsoft.com/en-us/library/fx6588te.aspx#2我的问题是,我不能保持连接打开后,我收到来自客户端的消息。 如果按照该示例所述,连接在收到消息后立即关闭。 如果我没有关闭连接,我只能收到一条消息,只能收到一条消息。 如果你有任何解决方法,就这样扔它。
我明白了!
如果有其他人有这个问题,他们应该做以下事情。 更改此代码:
content = state.sb.ToString()
这样:
content = state.sb.ToString().TrimEnd(New Char() {ChrW(13)})
那么你应该改变这样的:
If content.IndexOf("<EOF>") > -1 Then
这样:
If content.IndexOf(New Char() {ChrW(13)}) > -1 Then
这将接收输入( chrw(13))as行结束。
然后在这里:
Console.WriteLine("Read {0} bytes from socket. " + vbLf + " Data : {1}", content.Length, content)
' Echo the data back to the client.
Send(handler, content)
你应该这样做:
Console.WriteLine("Read {0} bytes from socket. " + vbLf + " Data : {1}", content.Length, mid(content,1,content.length -2))
' Echo the data back to the client.
'Send(handler, content)
content = String.Empty
state.sb.Clear()
handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, New AsyncCallback(AddressOf ReadCallback), state)
和你做。