在VB6中工作时,我使用Winsock通过Internet发送和接收消息。 在VB6的Winsock流行的问题是,当我送一个大的字符串约7000字符,客户端收到许多部分截断为2500-> 3000字,我需要加入截断包有原来的消息是这样的:传入消息是否在.NET UdpClient/UDPServer中自动截断?
Public FullMessage as string
Private Sub wskConnect_DataArrival(ByVal bytesTotal As Long)
Dim sBuff As String
wskConnect.GetData sBuff, vbString
FullMessage = FullMessage & sBuff
End sub
此问题在此链接中确认VB6 winsock(VB6 Asynchronous Tcp Client truncates incoming messages)
现在我要将我的代码迁移到.NET Framework。使用.Net UDPClient/TCPClient时,是否需要执行相同的方法? .Net是否会自动为我解决这个问题,或者该消息仍然是自动截断的,我需要自己加入它?这个问题是出于UDP协议还是TCP协议,还是仅用于TCP协议?
你的答案意味着你可以使用UDP发送*任何消息*。发送大于单个数据包大小的数据将会遇到与任何基于数据流的协议相同的问题,因为您需要自行实施数据流。这比直接使用TCP更加有效。也许你可以在OP决定UDP将结束他所有的消息发送问题之前编辑它。 – nvoigt 2014-09-01 08:25:25
在这种情况下,65k的限制就足够了,因为他声称“我发送了一个大约7000字符的字符串”。但是,我应该像你说的那样指出这一点。 – jgauffin 2014-09-01 08:28:10
非常感谢你们两位男士,我已经测试过自己并找到了答案。我已经知道65k的限制,以及在使用UDP时数据包丢失的可能性。 jgauffin的答案对我来说很好。同时也非常感谢你分享大量有用的信息。 – DucFabulous 2014-09-01 13:26:22