tcpip sockets

Michal Krause mike na navrcholu.cz
Úterý Červen 1 21:22:55 CEST 1999


Dne 1. 6. 1999 =?iso-8859-2?Q?Ji=F8=ED_=A9t=ECp=E1nek?= napsal:

> mam redhat 5.1 a snazim se programovat tcpip aplikaci (chat) ve
> freepascalu (freepascal.sk). je tam celkem dobry socket-unit, ale nemam k
> nemu kompletni dokumentaci. setkal jsem se tam s recordtypem tinetsockaddr
> (popis viz nize). potreboval bych prevest hostname/ip-adresu a cislo portu do
> promenne tohoto typu (v pascalu, klidne i v C/C++). dekuji
> 
> TInetSockAddr = packed record
>   family:word;
>   port:word;
>   addr:cardinal;
>   pad:array[1..8] of byte;
> end;

Nevim, jak v packalu, ale v C takto:

server.sin_addr.s_addr = inet_addr(iaddr);
server.sin_family = AF_INET;
server.sin_port = htons(80);

Funkce inet_addr() konvertuje IP adresu z human readable tvaru (x.x.x.x) do
binarniho tvaru se sitovym poradim bajtu. V podstate to same dela funkce
htons. Pad, pokude se nemylim, je jenom doplneni na velikost struktury
sockaddr.

S pozdravem

Michal Krause                                                      /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu     /\/  \
email: mike na navrcholu.cz ______ http://www.root.cz/ ______ NAVRCHOLU.cz

There are three kinds of lies: lies, damn lies, and benchmarks.
                                                         Jeremy Allison


Další informace o konferenci Linux