我們正在開發需要通過TCP發送和接收數據的跨平臺網絡應用程序。在linux上,我們使用select()
來等待發送和接收,以確保套接字已準備就緒。但是,在OSX上,選擇進行讀取會花費大量的時間返回 - 超過20秒。 select()
沒有超時 - 我們的超時時間是60秒,數據回來了,它只是可笑地緩慢。這隻會發生讀取,而不是發送。網絡似乎沒有問題(再次,同一網絡上的Linux機器似乎沒有相同的問題)。mac osx上的select()套接字系統調用花費很長時間讀取
是否有人知道在OSX中使用套接字編程的任何警告?
您是否嘗試過使用tcpdump或類似工具來驗證數據是否按時到達?這可能是網絡問題,而不是「select()」問題。 – 2010-08-20 16:06:33
哇,你是對的!服務器正在等待30秒發送 - 我的不好。感謝您的幫助 – wickedchicken 2010-08-20 17:05:31