Вниз
Скачать: CL | DM;

Номер порта(Addr.sin_port)   Найти похожие ветки 

 
GanibalLector ©   (2006-01-16 19:46) [0]

Есть акцептирующая нить.В случае успешного акцепта создается еще одна нить.Параметром в эту нить передаю
Addr и TSocket.Далее эта нить работает и в конце,мне хотелось получить IP клиента и номер порта.
Значит,перейдем к сабжу :

//акцептирующая нить
type
 TMode=record
  Sock:TSocket;
  Addr:TSockAddr;
 end;
 PMode = ^TMode;

...
if Select(0,@FDSet,nil,nil,@Tm)<>0 then
         begin
           if FD_IsSet(Sock,FDSet) then
           begin
             AcceptedSock:=Accept(Sock,@Addr,@Len);
             if AcceptedSock<>Invalid_Socket then
             begin
                GetMem(Val,SizeOf(TMode));
                Val.Sock:=AcceptedSock;
                Val.Addr:=Addr;
                BeginThread(nil,0,@ProcessSockEvents,PMode(Val),0,ThId);
                ...

// рабочая нить
function ProcessSockEvents(Param:Pointer):Integer;
var Sock:TSocket;
begin
 ...
 Sock:=PMode(Param).Sock;
 ...
 
 Form1.Memo1.Lines.Add("Created:"+LongToIp(PMode(Param).Addr.sin_addr.S_addr));
 Form1.Memo1.Lines.Add("Port"+IntToStr(PMode(Param).Addr.sin_port));

 // не обращайте внимания на ОТСУТСТВИЕ синхронизации! Это пока черновик!



С IP все впорядке,получаю IP клиентов.А вот с номером порта беда :( Значение получаемое Addr.sin_port
отличается от значения порта,которое показывает утилита TCP-View.

В чем я не прав?


 
atruhin ©   (2006-01-16 20:10) [1]

Addr.sin_port - обратный порядок байт.
см. htons, ntohs


 
GanibalLector ©   (2006-01-17 00:15) [2]

2 atruhin ©   (16.01.06 20:10) [1]
Таки да. Лажанулся ;)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
2-1145209259
SamProf
2006-04-16 21:40
2006.05.07
Как получить содержимиое ListView по handle?


2-1145507988
Tester83
2006-04-20 08:39
2006.05.07
Трей


15-1144877931
Volf_555
2006-04-13 01:38
2006.05.07
Как в Internet Explorer отображать php-скрипты?!


2-1145360339
Elen
2006-04-18 15:38
2006.05.07
Сообщения


11-1124588005
UFO
2005-08-21 05:33
2006.05.07
Декодер PNG размером 6-8 килобайт




   Наверх