networkstream

    2熱度

    1回答

    我有一個while while循環,它從NetworkStream對象 中讀取一個緩衝區,while條件是networkStream.CanRead,只要它能讀取,它應該繼續從緩衝區讀取數據。唯一的問題是,當我從緩衝區讀取並轉換爲字符串時,其中沒有任何內容。即它是空的。 爲什麼會發生呢? 這是一個ASP.NET(VS2005)應用 @dtb代碼信息: 我傳遞了一個NetworkStream對象ne

    8熱度

    3回答

    我有一個TcpClient對象,它使用底層的NetworkStream.Write()向服務器發送一些數據。爲此 ,我有: TcpClient server = new TcpClient(serverName, 50001); /* ... */ NetworkStream stream = server.GetStream(); 現在,當按下一個按鈕,連接應該關閉。 關閉連接的正確

    1熱度

    3回答

    我有一些網絡代碼來處理任意TCP連接。 這一切似乎按預期工作,但似乎緩慢。當我對代碼進行剖析時,似乎在NetworkStream.Read()中花費了600毫秒,我想知道如何改進它。我已經調整了緩衝區大小,並在一個龐大的緩衝區之間交替讀取,以便一次讀取所有數據,或者將數據連接成一個StringBuilder。目前我使用的客戶端是一個網頁瀏覽器,但是這個代碼是通用的,它可能不是被髮送給它的HTTP數

    1熱度

    2回答

    我可能只是誤解的東西在這裏根本,但... 塞納里奧:我叫System.Net.Sockets.NetworkStream的BeginRead方法和我的機器接收到響應/請求來自網絡設備。運行時在自己的線程中運行我的回調。在此線程可以調用EndRead之前,機器會收到另一個響應/請求。 問題:將運行時立即撥打我的回調在另一個線程或等待我打電話EndRead,然後再BeginRead?

    5熱度

    2回答

    我在我的應用程序中有一個工作線程負責三個不同的事情。兩個作業的請求在我編寫的隊列中打開,另一個作業在網絡流上發出請求時激活。如果沒有工作要做,我希望我的工作線程能夠等待。使用這兩個隊列很容易,因爲它們暴露了在有項目時設置的ManualResetEvent,但是NetworkStream似乎沒有這個。 NetworkStream已從TcpClient中檢索。 我所後的代碼看起來是這樣的: while

    0熱度

    1回答

    對不起相同的順序完成,我是很新的這一切多線程的東西... 我工作的客戶機/服務器應用程序,我將使用System.Net.Sockets.NetworkStream的異步IO方法。 我知道調用BeginRead後,系統會在每次接收數據時開始調用回調函數。回調可能需要很長時間才能完成,但需要在任何其他線程運行相同的回調之前完成。 如果我簡單地將我的回調方法標記爲synchronized,是否足以確保每

    2熱度

    2回答

    我的一個朋友問我一個問題:在連接的服務器端使用NetworkStream類時,如果客戶端斷開連接,NetworkStream無法檢測到它。 剝了下來,他的C#代碼是這樣的: List<TcpClient> connections = new List<TcpClient>(); TcpListener listener = new TcpListener(7777); listener.Sta

    26熱度

    7回答

    我正在玩TcpClient,我試圖弄清楚如何使連接屬性在斷開連接時發生錯誤。 我試着做 NetworkStream ns = client.GetStream(); ns.Write(new byte[1], 0, 0); 但它仍然不會告訴我,如果TcpClient的斷開。你會如何使用TcpClient來解決這個問題?

    1熱度

    1回答

    我遇到了套接字編程作業問題。我寫了一個通過套接字/網絡流發送命令的TCP客戶端。我使用Wireshark來查看通過電線的原始數據。每次我發送一個「命令」(意思是Flush()網絡流),Wireshark應用程序告訴我TCP報頭中的校驗和不正確(說「它應該是0x2440,但是是0x0000)。 我不明白爲什麼在應用程序層我不得不關心TCP頭,這是不對的 有人會知道爲什麼我得到這個「錯誤」。是否有設置

    0熱度

    2回答

    我有一個繼承自TcpClient的類。在那個班裏,我有一個處理回答的方法。在這種方法中,我打電話給我的NetworkStream和MyBase.GetStream,並調用Read。 這可以正常工作,第一次讀取塊的時間太長。而且太長時間我的意思是套接字已經收到了大量的數據,但直到達到任意限制時纔會讀取它。我可以看到它使用數據包嗅探器WireShark收到了大量的數據。 我已經將接收緩衝區設置爲少量,