Почему может не работать передача TCP? - C#
Формулировка задачи:
У меня есть программка,которая передает(должна передавать сообщения через сеть(локальную или инет),но почему то она не работает.
Реализация программы типа:клиент-сервер
Не могли бы вы объяснить почему программа может не передавать?Влияет ли на это роутер?
Вот код:
Программа не моя...
//Сокеты using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; using System.Net; using System.Net.Sockets; using System.Threading; using System.Timers; class Program { static void Main(string[] args) { Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //Создаем основной сокет IPAddress ipAddress = null; //IP-адресс IPEndPoint Addr = null; //конечная точка(IP и порт) Console.WriteLine("1 - Server\n2 - Client"); switch (Console.ReadKey(true).KeyChar) { case '1': Console.Title = "Server"; //Сервер //ipAddress = Dns.GetHostEntry("localhost").AddressList[0]; //Преобразовуем адрес или IP узла в массив IP и берем первый Addr = new IPEndPoint(IPAddress.Any, 5300); //"localhost" = 127.0.0.1 s.Bind(Addr); //"Адресуем" сокет s.Listen(10); //Обозначаем количество ожидающих в очереди на подключение Console.WriteLine("Ждем коннекта..."); Socket cl_s = s.Accept(); //Ожидаем подключения Console.WriteLine("Есть коннект!"); while (!Console.KeyAvailable) //Пока не нажата клавиша { byte[] msg = new byte[cl_s.Available]; cl_s.Receive(msg); //Принимаем МСГ Console.WriteLine(Encoding.UTF8.GetString(msg)); //Конвертируем и выводим } cl_s.Close(); //Закрываем сокет break; case '2': Console.Title = "Client"; //Клиент ipAddress = IPAddress.Parse("178.93.7.106");//Dns.GetHostEntry("localhost").AddressList[0]; Addr = new IPEndPoint(ipAddress, 5300); //"localhost" = 127.0.0.1 s.Connect(Addr); //Коннектимся к срверу while (true) //Вечная истина :) { byte[] msg = Encoding.UTF8.GetBytes(Console.ReadLine()); //Конвертируем s.Send(msg); //Отправляем } break; } s.Close(); //Закрываем сокет Console.ReadKey(); } }
Что прям никто с TCP не встречался?
Решение задачи: «Почему может не работать передача TCP?»
textual
Листинг программы
IPHostEntry ipHost = Dns.GetHostEntry("localhost"); IPAddress ipAddr = ipHost.AddressList[1]; // 0 - "::1", 1 - "127.0.0.1" IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000); listener.Bind(ipEndPoint); listener.Listen(10); tcp = listener.Accept();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д