我正在使用Csharp tcp套接字在客戶端和服務器之間發送數據。 現在,我看到它或我認爲它的問題是,tcp是一個流協議,不會推送(發送)數據,除非它們有足夠的數量。強制TCP流發送緩衝區內容
例如說我想發送一些數據,不管它是什麼並不重要,只要說它的8個字節長。我看到的行爲是無論等待它多長時間不會發送該數據,除非我更多地推遲它,直到我到達tcp緩衝區。
所以我的問題是。如果我想通過tcp發送少量的數據,我是否需要追加垃圾到最後來強制套接字發送。 (我不會覺得這很好),或者是他們的另一種方式,我可以強制流的前段發送。
在此先感謝。我仍然在學習tcp,所以請原諒這種無知。
有幾種使用.Net中的套接字發送數據的方法。您正在使用哪一個,即可以向我們展示您的代碼的簡短摘錄? – svick
噢,我正在使用TcpClient對象並在客戶端和服務器上設置NoDelay = true並不能解決問題。 – user826228
我認爲它沒有得到數據,而是更多的與我沒有使用NetworkStream.Read正確。我會更詳細地介紹api文檔。感謝所有的幫助。 – user826228