問題があります.SocketConnection経由で大きな文字列を送信したいのですが、ネットワークが限られているため〜1500バイトまで、どのようにしてTCPClientを使わずにSocket上のすべてのバイトを受信することができますか、それは不可能です。ソケット接続経由で大きなデータストリームを受信する方法 - TCPClientを使用しないで
public string ReceiveString(Socket connection)
{
byte[] buffer = new byte[1048576];
int recBytes = connection.Receive(buffer);
return UnicodeEncoding.Unicode.GetString(buffer, 0, recBytes);
}
私がこれまで持っているもの厥、。
ソケットで取得することができない場合、「最後のオプション」としてTCPClientを使用するために、ソケットのEndPointを取得できますか?
データをパケットに分割して受信(連結)するには、文字通り[プロトコルレベル](https://en.wikipedia.org/wiki/OSI_model#Layer_4:_Transport_Layer)を実装する必要があります。 – Sinatr
できません。 TCPはすべてのメッセージを〜1500バイトのデータグラムに分割します。非同期メソッドを使用する必要がある場合は、同期Receive()メソッドを使用しています。送信関数に終端文字を追加する必要があります。そのため、受信関数は終了文字が見つかるまで1500個のデータグラムを読み続けることができます。 – jdweng
TCPに何かの終了シーケンスがありますか?\ 0について何か聞いたことがありますか? – Silent3241