Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
15-1139950881
LordOfRock
2006-02-15 00:01
2006.03.12
Фильм DooM


15-1140438952
Cosinus
2006-02-20 15:35
2006.03.12
Windows Host Script и загрузка процессора.


2-1140590291
nap<>
2006-02-22 09:38
2006.03.12
Процессы


15-1140089165
wiki
2006-02-16 14:26
2006.03.12
c# и линукс


10-1115197863
Phenix2005
2005-05-04 13:11
2006.03.12
Встраивание Excel в форму приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский