c #Socket发送接收网络

时间:2016-08-10 16:58:18

标签: c# sockets

我对我的问题感到困惑和震惊。我使用套接字编写了一个多客户端服务器。

我创建了第一个接收客户端并在gridview中显示它们的GUI,在click gridview事件中,它打开了一个新的GUI,其中包含点击的客户端和服务器之间的套接字。所以关于服务器和客户端之间连接的一切都很顺利

但我的问题是:

  1. 他们之间的发送信息就像发送完整的过程一样,它有时显示为完整,有时候结果较少。

  2. 发送文件管理,例如当服务器请求目录中的完整文件夹/文件时,有时会显示所有文件夹/文件,有时会显示较少的结果。

  3. 但是这样的命令打开一个窗口打开一个网址,发送一条消息,这些命令如此完美和即时。

    我现在很困惑

    是什么问题
    • 注意1:我使用extern IP连接服务器/客户端。
    • 注意事项2:互联网连接完美(绝对不慢)

    我尝试使用不同的缓冲区大小,但我真正感到困惑的是,有时结果是特定的缓冲区大小,有时不具有相同的缓冲区大小。

    感谢您的时间!

1 个答案:

答案 0 :(得分:1)

我还建议您使用wireshark,以便您能够获得网络中真正发生的完整信息和交易。

这将帮助您排除问题的来源。

要确定数据包大小,请参阅图像enter image description here

这里我不是在谈论TCP握手协议是如何工作的,因为我认为它正在工作。但请注意,在传输中,如果你看到像RST这样的东西,那么可能有人发出了一个复位命令,暗示传输中发生了一些错误。例如,由于校验和的原因。虽然直接在TCP / IP协议上工作的人通常会遇到问题

这可以帮助您确认您发送并收到了正确的长度。