Почему может не работать передача 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();