Использование псевдо C# просто потому, что это то, что я использую, и при условии, что C# просто оборачивает протокол TCP:
A
Socket s = ...; //a valid open socket that is receiving
string str = "abcdefghijklmnopqrstuvwxyz";
for(int i=0; i<10;++i)
{
byte[] buf = ASCII.GetBytes(str);
s.Send(buf)
}
B
Socket s = ...; //a valid open socket that is receiving
string str = "abcdefghijklmnopqrstuvwxyz";
string str2 = "";
for(int i=0; i<10;++i)
{
str2 += str;
}
byte[] buf = ASCII.GetBytes(str2);
s.Send(buf)
Как они на самом деле различаются на уровне TCP, и, в частности, получатель может каким-либо образом узнать, что первое - это 10 отдельных сообщений, а второе - одно сообщение? Обрабатывает ли TCP каждый отправляющий вызов как некоторый пакет или конечный идентификатор, или он просто помещает байты в поток, и я должен определить способ определения того, что было отправлено, основываясь на самом контенте?