Использую класс TcpClient пространства имен System.Net.Sockets. Для отправки и получения сообщения Write, Read.
Пример клиента:
TcpClient client = new TcpClient();
client.Connect(server, port);
byte[] data = new byte[256];
StringBuilder response = new StringBuilder();
NetworkStream stream = client.GetStream();
do
{
int bytes = stream.Read(data, 0, data.Length);
response.Append(Encoding.UTF8.GetString(data, 0, bytes));
}
while (stream.DataAvailable); // пока данные есть в потоке
Сервер:
// получаем входящее подключение
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Подключен клиент. Выполнение запроса...");
// получаем сетевой поток для чтения и записи
NetworkStream stream = client.GetStream();
// сообщение для отправки клиенту
string response = "Привет мир";
// преобразуем сообщение в массив байтов
byte[] data = Encoding.UTF8.GetBytes(response);
// отправка сообщения
stream.Write(data, 0, data.Length);
Console.WriteLine("Отправлено сообщение: {0}", response);
// закрываем поток
stream.Close();
// закрываем подключение
client.Close();
По какому протоколу прикладного уровня передается сообщение от клиента серверу в классе TcpClient?
Это же не HTTP, не SMTP, не SNMP, а какой? TCP сам может передавать данные, какого размера?