#c# #sockets #networkstream
#c# #сокеты #networkstream
Вопрос:
Я пытаюсь подключиться к сокету, а затем прочитать NetworkStream.
Мой код приведен ниже:
NetworkStream myNetworkStream;
Socket socket;
socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IPv4);
socket.Connect(IPAddress.Parse("8.8.8.8"), 8888);
myNetworkStream = new NetworkStream(socket);
byte[] buffer = new byte[1024];
int offset = 0;
int count = 1024;
myNetworkStream.Read(buffer, offset, count);
Когда я пытаюсь отладить вышеуказанное, я получаю следующую ошибку:
Операция не разрешена для непотоковых ориентированных сокетов.
Что я делаю не так?
Спасибо
Ответ №1:
Вам нужно использовать SocketType.Stream
вместо SocketType.Raw
.
Комментарии:
1. Попробовал это, получил эту ошибку: «Запрошенный протокол не был настроен в системе, или для него не существует реализации»
2. Я полагаю, что вы пытаетесь подключиться к сокету UDP, а не к сокету TCP. Найдите это сообщение об ошибке здесь, и оно указывает SOCK_DGRAM. msdn.microsoft.com/en-us/library/windows/desktop /…
Ответ №2:
используйте это, это сработает «Сокет (семейство адресов.Межсетевой,SocketType.Stream, ProtocolType.Не указано)»