【发布时间】:2010-08-20 16:01:00
【问题描述】:
我们正在开发一个需要通过 TCP 发送和接收数据的跨平台网络应用程序。在 linux 上,我们使用select() 等待发送和接收以确保套接字已准备好。然而,在 OSX 上,select for read 需要很长的时间才能返回——超过 20 秒。 select() 没有超时——我们的超时时间是 60 秒,并且数据正在返回,它只是 可笑 慢。这只发生在读取,而不是发送。网络似乎很好(同样,同一网络上的 linux 机器似乎没有相同的问题)。
有人知道在 OSX 中使用套接字编程的任何注意事项吗?
【问题讨论】:
-
您是否尝试过使用 tcpdump 或类似工具来验证数据是否准时到达?这可能是网络问题,而不是
select()问题。 -
哇,你是对的!服务器正在等待 30 秒发送——我的错。感谢您的帮助