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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы