我正在使用众所周知的服务器制作一个简单的UDP P2P聊天程序。 客户端通过单个IdUDPServer从服务器和客户端发送和接收数据。
现在的客户端可以登录和注销,即他们可以将数据发送到服务器。 每当服务器发送任何数据时,它就会被丢弃在节点的NIC侧,因为wireshark通知嵌入式ip头校验和为0x00。
活跃:真实
绑定:
广播:错误
BufferSize:8192
DefaultPort:10000
IPVersion:Id_IPv4
ThreadedEvent:False
中只使用了一个命令
UDPServer.SendBuffer(ED_Host.Text,StrToInt(ED_Port.Text),Buffer);
类似的配置在我的另一个程序中完美运行。
答案 0 :(得分:1)
大多数NIC现在将执行校验和验证并生成,而不是os网络堆栈。这是为了提高性能,称为校验和卸载。因此,wiresshark将报告校验和作为错误丢失的事实但通常可以忽略或在线鲨设置中关闭错误。
某些NIC驱动程序允许您关闭校验和卸载。试试这个并重新测试代码