@HiLevel
Нет лучше кода, как говно у входа

Как настроить сокеты C#?

Здравствуйте! Такая проблема возникла. Нужно что бы клиент и сервер обменивались данными друг с другом, т.е. Клиент мог слушать и посылать данные и сервер обладал такими же характеристиками.
Вот сервер
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        public void getText ()
        {
            socket.Bind(new IPEndPoint(IPAddress.Any, 80));
            socket.Listen(1000000);
                Socket client = socket.Accept();
                byte[] buffer = new byte[1024];
                client.Receive(buffer);
                Console.WriteLine(Encoding.ASCII.GetString(buffer));
                Console.ReadKey();
        }

А вот сам клиент
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        public void connect()
        {

            socket.Connect("127.0.0.1", 80);
        }
        public void GiveOnline (string message)
        {
            connect();
            byte[] buffer = Encoding.ASCII.GetBytes(message);
            socket.Send(buffer);
            socket.Bind(new IPEndPoint(IPAddress.Any, 8080));
            socket.Listen(1);
            socket.Accept();
            socket.Receive(buffer);

        }

Проблема заключается в том, что при запуске клиента, он ругается на строку с IPEndPoint:
Необработанное исключение типа "System.Net.Sockets.SocketException" в System.dll
Получен недопустимый аргумент

Порты разные юзаю (на форуме прочитал, что в этом проблема, но ничего не помогло)

System.Net.Sockets.SocketException
HResult=0x80004005
Сообщение = Получен недопустимый аргумент
Источник = System
Трассировка стека:
в System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
в System.Net.Sockets.Socket.Bind(EndPoint localEP)
в Client.Give.GiveOnline(String message) в C:\Users\Дом\source\repos\Client\Client\Give.cs:строка 24
в Client.Program.Main(String[] args) в C:\Users\Дом\source\repos\Client\Client\Program.cs:строка 14
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
shai_hulud
@shai_hulud
https://stackoverflow.com/questions/1777629/how-to...

> You cannot bind a single socket to multiple endpoints. A SocketException (invalid argument error) occurs the second time you call Bind() for a given socket.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы