10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
1

Порт занят или ошибка WSAGetLastError 10048

28.12.2010, 15:37. Показов 3289. Ответов 6
Метки нет (Все метки)

Здраствуйте! Написал програмку чат по UDP протоколу... Все работает нормально, ток не могу запустить на 1 компе 2 проги. WSAGetLastError() показывает что порт занят (ошибка 10048). Да, он занят первой запущеной програмкой. А можно ли как-то сделать чтоб запускать более 1 програмки на 1 компе? Если да то как?
Вот фрагмент кода с ошибкой:
Delphi
1
2
3
4
5
6
7
8
 insin.sin_port :=htons(333);         //19713
 insin.sin_family := AF_INET;         //2
 insin.sin_addr.S_addr :=INADDR_ANY;  //0
         //1664               16
 if(bind(udpin, insin, sizeof(insin)) = SOCKET_ERROR)then begin
  ShowMessage('Error bind(udpin,,). ID: ' + IntToStr(WSAGetLastError()));
  exit;
 end;
Добавлено через 19 часов 1 минуту
нет никаких решений????
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2010, 15:37
Ответы с готовыми решениями:

TCP/IP ошибка о net.sockets.(Порт занят)
Вот такой трабл.На VB.NEt при работе с TCP/IP протоколом при использовании не стандартного порта...

В конфигурационном файле прописан порт, но пишет ошибку порт 80 занят другим приложением
Здравствуйте. Пишу решение с 2 проектами - сервер и клиент с дуплексным контрактом. Служба...

Занят порт 80
Вчера обновился до windows 10. сегодня пытаюсь запустить сервер, пишет что порт 80 занят службами...

Занят порт
Написал WCF Library class, и пытаюсь его протестировать wcftestclient'ом, но получаю ошибку, что...

6
2649 / 2271 / 279
Регистрация: 24.12.2010
Сообщений: 13,725
29.12.2010, 19:45 2
> он занят первой запущеной програмкой

Ну раз занят, зачем пытаться отнять его ? Кто первый встал - того и тапки)
Портов что ли других заведомо свобобных мало ?

Да и подумай головой над элементарным - какой, спрашивается, программе из N работающих на одном и том же порту система должна адресовать входящий поток инф.сообщений, адресованных на этот порт ?
0
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
30.12.2010, 19:26  [ТС] 3
Цитата Сообщение от mss Посмотреть сообщение
Ну раз занят, зачем пытаться отнять его ? Кто первый встал - того и тапки)
Портов что ли других заведомо свобобных мало ?
вот именно, я хочу 2 этих чата запустить на одном компе, 2 копии, а могу только первую


Цитата Сообщение от mss Посмотреть сообщение
Да и подумай головой над элементарным - какой, спрашивается, программе из N работающих на одном и том же порту система должна адресовать входящий поток инф.сообщений, адресованных на этот порт ?
здесь ненадо думать, я все обьяснил: первой копии моего запущеного чата
0
2649 / 2271 / 279
Регистрация: 24.12.2010
Сообщений: 13,725
31.12.2010, 10:37 4
> здесь ненадо думать, я все обьяснил: первой копии моего запущеного чата

Ах вон оно как !) Оказывается, думать-то и не надо)

Ну если "первой копии", то начерта, спрашивается, вторая копия у тебя пыжится занять тот же порт, если сообщения все равно должны и будут доставляться первой копии ?)
0
10 / 10 / 5
Регистрация: 04.07.2009
Сообщений: 112
31.12.2010, 11:49  [ТС] 5
Цитата Сообщение от mss Посмотреть сообщение
Ну если "первой копии", то начерта, спрашивается, вторая копия у тебя пыжится занять тот же порт, если сообщения все равно должны и будут доставляться первой копии ?)
ну если спросил значить нужно!

Не по теме:

mss, ты реально помочь собираешся или поумничать решил? :Р

0
2649 / 2271 / 279
Регистрация: 24.12.2010
Сообщений: 13,725
31.12.2010, 12:02 6
> если спросил значить нужно

Ну раз так , раз никаких вразумительных аргументов в пользу "нужно" ты приводить не собираешься, то читай опцию SO_REUSEADDR ф-ции SetSockOpt().
0
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,644
24.04.2016, 21:28 7

Не по теме:

может, наткнётся кто на эту тему, как наткнулся я и найдёт решение



Цитата Сообщение от yurembo Посмотреть сообщение
А можно ли как-то сделать чтоб запускать более 1 програмки на 1 компе? Если да то как?
Скорее можно, чем нельзя. Я в этом деле не особо силён, но кто знает, тот молчит, проверено. А у меня получилось.

По-моему, если ты хочешь запускать на компе два экземпляра одной проги, и чтобы они слушали один порт, значит, их надо как-то разграничить. Как? Сделать им разные ip-адреса. То есть сделать так, чтобы на одном компе было, например, 2 ip-адреса. Тут глянешь, как это сделать.

Потом, я так понимаю, ты запускаешь сервер. Значит, запускаешь один экземпляр сервера, он у тебя адресуется по одному ip-адресу, другой экземпляр по другому. Порт один и тот же.

ip-адреса прописываешь здесь:

Delphi
1
insin.sin_addr.S_addr := //тут прописываешь ip-адрес
То есть всякий раз запускаешь программу с разными параметрами- ip-адресами. И эти параметры должны подставляться в нужное место.

++++++++++++++++++++++++++++++++++++++++++++

На всякий случай, а на дельфи не пишу, а на плюсах только. На плюсах это выглядит так:

C++
1
local_addr.sin_addr.s_addr= inet_addr("XXX.XXX.XXX.XXX");
inet_addr () это специальная функция, в дельфи должен быть её аналог
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2016, 21:28
Помогаю со студенческими работами здесь

Определить, занят ли COM-порт
Добрый день! В программе используются несколько com портов. Как можно проверить используется ли...

Узнать занят ли порт
Добрый день, подскажите плиииз. Нужна конструкция в баше типа if(port_used(3000)){ }else{} ...

В GDI+ возникла ошибка общего вида или процесс занят
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,...

Glassfish. Занят порт 4848
Всем привет. У меня стоит Ubuntu 14.05, попробовал поставить Glassfish 3.0.1 по вот этому мануалу и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru