У меня есть сетевое приложение, запущенное на моем компьютере локально. Он имеет сетевой интерфейс и использует протокол tcp. Я могу успешно подключиться к нему через telnet, отправить команду и получить результат.Не удается получить результат через сокет из приложения - «Существующее соединение было принудительно закрыто удаленным хостом»
telnet localhost 1234
.......
my_command
=> result # That's it
Однако, я не могу сделать то же самое в C#, он всегда возвращает ошибку
Unhandled Exception: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
Вот мой код:
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Tcp);
socket.Connect(host, port);
var buffer = Encoding.ASCII.GetBytes(cmd);
socket.Send(buffer, 0, buffer.Length, SocketFlags.None);
var buffer2 = new byte[1055];
int rec = socket.Receive(buffer2, 0, buffer2.Length, SocketFlags.None); # the error is thrown here
код довольно прост. Я что-то делаю неправильно?