Hycin信 2019-05-09 19:30 采纳率: 0%
浏览 255

win7 raw socket 发送接收udp有时成功有时失败

在win7系统,使用raw socket分别编写发送和接收udp的程序。一开始可以成功,后来莫名其妙就接收不到。然后试过一次相同的代码可以接收成功,但过几个小时之后有接收不了。

以下是做的一些测试:(源地址和目的地址都是127.0.0.1)

①使用raw socket发送,wireshark可以捕获到,且数据、端口正确。但是raw socket编写的接收端和java编写的接收端接收不到

②使用java的发送端发送,raw socket接收端可以接收

据测试应该是发送端问题,可是之前成功过,同一份代码却无端失败。所以猜测会不会是系统或其他的问题。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 10:38
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能由多种原因引起,以下是一些常见的原因:

    1. 网络连接不稳定或冲突:这可能是导致接收方无法接收到数据的原因之一。
    2. 传输层协议配置错误:例如,TCP或UDP的参数设置不当可能导致接收方无法正确解析数据包。
    3. 接收方应用程序问题:如果接收方应用程序有问题,它可能会阻止接收数据。
    4. 系统资源限制:Windows操作系统对某些网络操作可能有限制,导致接收方无法接收到数据。
    5. 数据包过大或格式不匹配:这可能会导致接收方无法正确解码数据包。
    6. 病毒或恶意软件:有时候,病毒或恶意软件可能会干扰接收方的应用程序,导致接收数据失败。

    要解决这个问题,你可以尝试以下几个步骤:

    1. 检查网络连接:确保你的电脑已经与互联网连接,并且没有其他设备正在占用网络带宽。
    2. 检查传输层协议:确认你使用的TCP或UDP协议是否正确配置了,以及它们的参数是否合理。
    3. 检查应用程序:检查接收方的应用程序是否有任何问题,或者是否有未安装的补丁或更新。
    4. 检查数据包大小:确保数据包大小不超过传输层协议的最大允许值。
    5. 检查数据包格式:确认接收方能够正确解析数据包的格式。
    6. 检查系统资源:确保你的电脑有足够的内存和处理器性能来处理接收数据。

    如果你不确定如何解决问题,请考虑联系专业的技术支持人员或安全顾问,他们可以帮助你定位并修复问题。

    评论

报告相同问题?