Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.09 c
15-1144734860
DelphiN!
2006-04-11 09:54
2006.05.07
Книга по Visual Studio 2005


15-1145028656
Чародей
2006-04-14 19:30
2006.05.07
dbf


2-1145557471
Svet
2006-04-20 22:24
2006.05.07
Отбор в Grid е


15-1145249352
DelphiN!
2006-04-17 08:49
2006.05.07
Помогите получить время в формате UnixTime на C#


15-1145184216
x.pro
2006-04-16 14:43
2006.05.07
Проблема с драйверами?