簡體   English   中英

C#TCP套接字,在“相同”時間(.NET CF)進行異步讀寫,如何?

[英]C# TCP socket, asynchronous read and write at the “same” time (.NET CF), how?

乍一看,在套接字級別使用異步方法時,從關聯的網絡流發送或接收數據或直接在套接字上“接收”數據應該沒有問題。 但是,您可能已經知道了。

Windows Mobile平台和Compact Framework上特別突出了該問題。

, BeginReceive and the callback function which performs ends a pending asynchronous read for the received data (EndReceive) from the async. 我使用 ,BeginReceive和回調函數來結束從異步接收的數據(EndReceive)的掛起異步讀取。 結果。

由於我需要不斷從套接字接收數據,因此有一個循環等待數據。 當我要發送數據時,問題就開始了。 為此,在通過套接字發送一些數據之前,我使用EndReceive“強制”異步讀取的兩端。 ). 這有一個很大的延遲 (有時您不能等待此 )。 . 超時時間太長, 我不想關閉插座並重新連接。

我使用同步方法Send發送數據(盡管結果與異步方法BeginSend / EndSend相同)。 發送完成后,我再次開始接收數據。

我了解的資源:

(ErrorCode: 10036). PS:我嘗試發送數據而沒有結束異步接收,但隨后出現SocketException: (錯誤代碼:10036)。

提前致謝! 我希望,我不是一個人在這“一個小問題”

您是否考慮過使用輪詢(或為多個套接字選擇)而不是BeginReceive靜態方法來檢查是否有要讀取的數據? 我認為這給您帶來了麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM