我有問題,我想通過SocketConnection發送大字符串,但由於網絡有限,我無法一次接收字符串到1500字節,所以我如何通過Socket接收所有字節而不使用TCPClient,或者這是不可能的。如何通過套接字連接接收大數據流 - 無TCPClient
public string ReceiveString(Socket connection)
{
byte[] buffer = new byte[1048576];
int recBytes = connection.Receive(buffer);
return UnicodeEncoding.Unicode.GetString(buffer, 0, recBytes);
}
那是,我至今。
如果它不可能,通過套接字,我可以從套接字中獲取EndPoint以使用TCPClient作爲「最後的選項」?
您必須自己實施[協議級別](https://en.wikipedia.org/wiki/OSI_model#Layer_4:_Transport_Layer)以將數據拆分爲數據包並接收(連接)它們。 – Sinatr
你不行。 TCP將每條消息分解爲大約1500字節的數據報。當您應該使用異步方法時,您正在使用同步Receive()方法。您需要在發送功能中添加終止字符,以便接收功能可以繼續讀取1500個數據報,直到找到結束字符。 – jdweng
TCP是否有某種類型的結束序列,我的意思是,我聽說過\ 0? – Silent3241