答案 0 :(得分:2)
检查此链接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
这将接收Enter(chrw(13))作为行尾。
然后在这里:
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)
你完成了。