0
我想做一些客户端和服务器来相互共享文件。我有一个问题,因为TCP“消息”被合并,尽管我设置了多少字节我想发送和多少接收。TCP中的多重发送()或接收()
我看了一下,发生问题的时候,我在第一个“消息”发送一个文件名,然后(例如在新的Send())中发送文件内容。
我通过在每个接收数据包当前发送反馈消息来解决它。
有没有更好的方法来做到这一点?
我想做一些客户端和服务器来相互共享文件。我有一个问题,因为TCP“消息”被合并,尽管我设置了多少字节我想发送和多少接收。TCP中的多重发送()或接收()
我看了一下,发生问题的时候,我在第一个“消息”发送一个文件名,然后(例如在新的Send())中发送文件内容。
我通过在每个接收数据包当前发送反馈消息来解决它。
有没有更好的方法来做到这一点?
为每条消息添加长度前缀。然后读取一个循环,直到您收到尽可能多的字节。
[Data loss TCP IP C#]可能的重复(http://stackoverflow.com/questions/5528234/data-loss-tcp-ip-c-sharp) – CodesInChaos 2012-04-02 07:32:39
更多重复项:[1](http:// stackoverflow.com/q/8575659/445517)[2](http://stackoverflow.com/q/9895132/445517) – CodesInChaos 2012-04-02 07:33:04
我做了类似 'string msg =“test”; byte [] buf = new byte [1024]; byte [] prefix = BitConverter.GetBytes(msg.Length); byte [] data = Encoding.UTF8.GetBytes(msg); Array.Copy(prefix,0,buf,0,prefix.Length);数组。 Array.Copy(data,0,buf,prefix.Length,data.Length); (buf);' 但我不知道如何接收邮件。 – deem 2012-04-02 09:33:51