Лучший отвечающий
Socket и работа с ним!

Вопрос
-
Вот часть кода
Код C# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
public void SendMessageFromSocket(int port, string IPadd, string comm) { // Буфер для входящих данных byte[] bytes = new byte[1024]; // Устанавливаем удаленную точку для сокета IPHostEntry ipHost = Dns.GetHostEntry(IPadd); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port); Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sender.Connect(ipEndPoint); byte[] msg = Encoding.UTF8.GetBytes(comm); // Получаем ответ от сервера int bytesRec = sender.Receive(bytes); string words = Encoding.UTF8.GetString(bytes, 0, bytesRec); // Отправляем данные через сокет int bytesSent = sender.Send(msg); string wordss = Encoding.UTF8.GetString(msg, 0, bytesSent); sender.Shutdown(SocketShutdown.Both); sender.Close(); }
29 октября 2013 г. 21:55
Ответы
-
Добрый день.
Да, вам нужно разбить код на части.
Вот это делаете полем класса:
Socket sender { get; set; }
Вот первый метод:
public void CreateSocket(int port, string IPadd) { // Буфер для входящих данных byte[] bytes = new byte[1024]; // Устанавливаем удаленную точку для сокета IPHostEntry ipHost = Dns.GetHostEntry(IPadd); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port); sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sender.Connect(ipEndPoint); }
Вот второй:
public void SendMessageFromSocket(string comm) { // Буфер для входящих данных byte[] bytes = new byte[1024]; byte[] msg = Encoding.UTF8.GetBytes(comm); // Получаем ответ от сервера int bytesRec = sender.Receive(bytes); string words = Encoding.UTF8.GetString(bytes, 0, bytesRec); // Отправляем данные через сокет int bytesSent = sender.Send(msg); string wordss = Encoding.UTF8.GetString(msg, 0, bytesSent); }
Вот третий:
public void CloseSocket() { sender.Shutdown(SocketShutdown.Both); sender.Close(); }
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 октября 2013 г. 7:37
30 октября 2013 г. 6:56Отвечающий
Все ответы
-
Добрый день.
Да, вам нужно разбить код на части.
Вот это делаете полем класса:
Socket sender { get; set; }
Вот первый метод:
public void CreateSocket(int port, string IPadd) { // Буфер для входящих данных byte[] bytes = new byte[1024]; // Устанавливаем удаленную точку для сокета IPHostEntry ipHost = Dns.GetHostEntry(IPadd); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port); sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sender.Connect(ipEndPoint); }
Вот второй:
public void SendMessageFromSocket(string comm) { // Буфер для входящих данных byte[] bytes = new byte[1024]; byte[] msg = Encoding.UTF8.GetBytes(comm); // Получаем ответ от сервера int bytesRec = sender.Receive(bytes); string words = Encoding.UTF8.GetString(bytes, 0, bytesRec); // Отправляем данные через сокет int bytesSent = sender.Send(msg); string wordss = Encoding.UTF8.GetString(msg, 0, bytesSent); }
Вот третий:
public void CloseSocket() { sender.Shutdown(SocketShutdown.Both); sender.Close(); }
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 30 октября 2013 г. 7:37
30 октября 2013 г. 6:56Отвечающий -
Спасибо!
Egor
30 октября 2013 г. 15:09