我正在尝试编写一个简单的客户端 - 服务器应用程序。它在同一台计算机上的双方都可以正常工作,但在两台不同的计算机上运行时它会阻塞。这些计算机是 RaspBerry Pi 2 和 MacBook Pro。问题是客户端在运行了几次后会阻塞在 binary.Write 中。通常,接收数据的服务器打印它已收到 63 和发送数据的客户端打印它将发送 64。如果我将截止日期广告给服务器,它会因超时而退出。客户端也有截止日期,但不会超时。我尝试用一个简单的字节数组或一个 int 替换数据。它仍然阻塞。但是数据越小,正确的次数就越多。如果我删除客户端中的 Printf 函数,它也会运行更长的时间。我还尝试通过从套接字到 STDIO 的简单副本来替换服务器的功能(我在某处找到的一个提示),但它仍然无法从 binary.Write 中出来。任何的想法?这是完整的来源。那里有一些虚假的东西(例如计数循环),但它们都非常简单。还是我错了?
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
吉姆的回答是正确的。Main 进入繁忙循环。我通过将一个通道传递给侦听器并在 main 结束时等待它来解决它。客户端在 for 循环之后“写入”它,这是一个无限循环,所以 main 永远不会结束。从那时起,该程序一直在传递数据。我会让它在一夜之间运行以确定。
我只有大约 12.5Mbit/s,这有点好笑。连接是 1Gbit Wifi AC 到 100mbit 以太网交换机到 Raspberry Pi。但这是另一个问题。
- 1 回答
- 0 关注
- 277 浏览
添加回答
举报
0/150
提交
取消