這是一個異步套接字的場景,我不太明白......我有2個Tcp套接字,一個客戶套接字&一個服務器套接字。我的服務器套接字綁定在端口上偵聽&。C#Socket.BeginSend AsyncCallback行爲(超時?)
我的客戶端套接字連接到服務器套接字(使用BeginConnect/EndConnect)。然後,我使用BeginSend()向服務器發送消息。在服務器端,我不做Receive()或BeginReceive()。
什麼情況是,我BeginSend調用指定我的AsyncCallback被調用&其IAsyncResult的告訴我,它完成&調用Socket.EndSend()不會引發任何異常......
有沒有東西,我沒有或者不應該只在BeginSend調用實際發送一些東西給服務器時調用AsyncCallback(即:服務器收到所有字節後調用的回調函數)?如果服務器上沒有接收完成,那麼在sendtimeout到期後我的回調不應該被調用,並且我對Socket.EndSend的調用會引發異常?
謝謝
等什麼?在從服務器收到TCP ACK之前調用beginsend回調函數?我不確定我喜歡這個。 – Chris 2014-03-01 12:00:51