TcpClient, ошибка подключения
Подскажите, плиз. А то беда совсем.
Вот, пытаюсь я подключиться к серверной части проги сл образом
server = new TcpClient(new IPEndPoint(ip, 8000));
ip впринципе не важен в данный момент. Там может быть и локалхост и внешний сеточный ip. При попытке подключения происходит ошибка сл. содержания:
System.Net.Sockets.SocketException was caught
Message="Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт)"
Source="System"
ErrorCode=10048
NativeErrorCode=10048
StackTrace:
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.Net.Sockets.TcpClient..ctor(IPEndPoint localEP)
at Proga.Server.Connect()
Вот. И чего-то я не пойму. Заранее спасибо за подсказку.
Я запускаю сервреную и клиентскую часть у себя для проверки на loopback. Ну... типа на самого себя. И вот тут-то и косяк проявляется. А если серверную часть отключить, то ошибки не происходит - просто не коннектится (потому что некуда) и всё. Короче работе клиентской части мешает серверная чать . Разве такое возможно? Типа и клиентскую и серверную часть одной программы на одном компе запускать нельзя?
Добавлено:
Сдается мне почему-то, что клиент пытается при подключении открыть тот же самый порт, который используется сервером.
IPAddress.TryParse("0.0.0.0", out ip);
Listener = new TcpListener(ip, 8000);
Listener.Start();
Clnt = Listener.AcceptSocket();
Ну типа да, тот же самый порт. А как же подругому!!?? Порт должен быть один и тотже. Иначе как соединение по разным портам получится?
Сдается мне, что клиент тут не причем. Ошибка возникает на Bind, т.е. слушающий сокет (серверный) не может прицепиться на 8000 порт, поскольку он уже занят другим слушающим сокетом. Проверь открытые порты (например, с помощью netstat).