1
如何模擬從非阻塞客戶端連接以體驗EINPROGRESS錯誤? 我可以從服務器做些什麼,這樣的錯誤返回給客戶端(即調整某些TCP定時器,原始套接字服務器等)TCP:從服務器端模擬EINPROGRESS(linux)
如何模擬從非阻塞客戶端連接以體驗EINPROGRESS錯誤? 我可以從服務器做些什麼,這樣的錯誤返回給客戶端(即調整某些TCP定時器,原始套接字服務器等)TCP:從服務器端模擬EINPROGRESS(linux)
當連接到本地主機TCP總是立即連接,因此connect()
不返回EINPROGRESS
。
您可以通過「假裝」connect()
返回EINPROGRESS
模擬客戶端並等待客戶端套接字準備好寫入(如果連接後EINPROGRESS
)。事實上,一些庫只是爲了避免兩個不同的代碼路徑,以便立即緩慢連接,而不是阻塞connect()
。
謝謝..但我可以從服務器做些什麼嗎?任何iptables命令延遲syn-ack ...例如。 – Deepak 2012-04-20 04:54:07
或通過更改tcp_max_syn_backlog或tcp_synack_retries使用syscntl爲tcp服務器 – Deepak 2012-04-20 08:28:55
您可以在不同的主機上運行您的服務器。或者在虛擬機中。沒有什麼比我更好的了... – 2012-04-20 10:45:11