Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

winsock   Найти похожие ветки 

 
redlord   (2006-02-23 21:00) [0]

народ подскажите
я использую процедуры библиотеки winsock для создания клиента .
порт удаленной машины я указываю сам , а  
как узнать порт сокета (на моем компе )который выделила система для моего клиента


 
Sysanin   (2006-02-24 01:09) [1]

Если ты делаешь через SocketServer и SocketClient, то порт указывается в SocketServer...


 
redlord   (2006-02-24 01:49) [2]

я использую процедуры библиотеки winsock


 
redlord   (2006-02-24 16:36) [3]

народ выручайти
если что не понятно спросил постараюс разяснить тока скажите что


 
GanibalLector ©   (2006-02-24 20:05) [4]

Вроде бы Bind,хотя он используется в основном для сервера ;) Вечером проверю и сообщу.


 
GanibalLector ©   (2006-02-25 01:53) [5]

Значит смотри...когда в клиенте ты делаешь Connect, то  стэк TCP/IP сам назначит уникальный  port. Как я и сказал в [4] до вызова Connect ты сможешь сам задать номер порта вызвав Bind. Но ИМХО это от Лукавого. Объясню почему : предположим клиент связывается\передает\разрывается несколько раз в секунду. Так вот,если посмотреть на клиентские порты в момент соединения,то можно увидеть,что они все различны!!! Обычно инкрементированы. И сделано это намерено! Если же на клиенте делать Bind с привязкой определенного порта,то при втором коннекте ты получишь ошибку. Естественно,можно ее разрулить дождавшись окончания состояния TIME_WAIT, которое наступит через 2 минуты(вроде...точне не знаю).

Я бы рекомендовал следующее(при условии,что исходники сервера твои) :
-(клиент) Connect;
-(сервер) определить номер порта клиента и отослать
-(клиент) получить и "засветить"

З.Ы. Кстати,ИМХО сабж возможен на "сырых" сокетах. По этому принципу построены все сниферы.


 
GanibalLector ©   (2006-02-25 01:58) [6]

>ИМХО сабж возможен на "сырых" сокетах
Которые некорректно себя ведут в WinXP c KB893066.Обязательно сносить ;)

2 Модераторам
"Начинающим" тут не пахнет,верните в "Сети".


 
==777==   (2006-02-26 19:29) [7]

sizeaddr:=sizeof(Tsockaddr);
if GetSockname(s,addr,sizeaddr)=0 then
memo1.Lines.add("Local port: "+inttostr(addr.sin_port));


 
GanibalLector ©   (2006-02-27 01:12) [8]

Таки да, GetSockName рулит ;) Не досмотрел.



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1140346770
QwertyKz
2006-02-19 13:59
2006.03.12
Автоматизация библиотек


2-1140926399
1Al3dK
2006-02-26 06:59
2006.03.12
неверная печать


3-1137591605
Quantum
2006-01-18 16:40
2006.03.12
многопоточность и БД


15-1140180610
Manic Mechanic
2006-02-17 15:50
2006.03.12
горе от ума


15-1140314092
Жду ответа
2006-02-19 04:54
2006.03.12
База или файл?