Re: Jak uzyskać numer portu mająć tylko gniazdo podłączonego do pewnego hosta(ponowne zapytanie)
  Home FAQ Contact Sign in
pl.comp.os.linux.programowanie only
 
Advanced search
POPULAR GROUPS

more...

 Up
Re: Jak uzyskać numer portu mająć tylko gniazdo podłączonego do pewnego hosta(ponowne zapytanie)         

Group: pl.comp.os.linux.programowanie · Group Profile
Author: Miros³aw Makowiecki
Date: Apr 20, 2007 06:27

Mariusz Kruk wrote:
> epsilon$ while read LINE; do echo ">$LINE"; done < Mirosław Makowiecki
>>> A możesz jeszcze raz, tym razem jaśniej?
>>> Co robisz, gdzie jesteÅ› i czego potrzebujesz.
>>>
>>Mamy oto kod,pomijająć obsługę błędów:
>>int des=socket(AF_INET,SOCK_STREAM,0);
>> struct sockaddr_in sock;
>> bzero(&sock,sizeof(struct sockaddr_in));
>> sock.sin_family=AF_INET;
>> struct hostent*hoste=gethostbyname("ftp.pl.debian.org");
>> sock.sin_port=htons(21);
>> memcpy(&sock.sin_addr,hoste->h_addr,sizeof(struct in_addr));//tutaj in
>> int status=connect(des,(struct sockaddr const*)&sock,sizeof(struct
>>sockaddr_in);
>>Jak widzimy łączymy się z hostem o nazwie ftp.pl.debian.org przy pomocy
>>portu 21.
>>Czyli z hosta i portu uzyskujemy desktryptor gniazda,a czy możliwy jest
>>proces odwrotny,a więc:
>>Pytanie: Mając deskryptor gniazda des(uzyskany przy pomocy powyższego
>>kodu) ,jak uzyskać numer portu oraz nazwa host do którego jesteśmy
>>podłączeni przy pomocy gniazda(desktryptora gniazda) des?
>
> Mam wrażenie, że coś mylisz. W powyższym przykładzie łączysz się z
> hostem ftp.pl.debian.org na _jego_ port 21. To tak na poczÄ…tek w kwestii
> terminologicznej, bo Twoja forma "przy pomocy" sugeruje, że usiłujemy
> wykorzystać po naszej stronie port 21, co prawdą nie jest, bo zostanie
> nam przydzielony port efemeryczny.
> A nie chodzi Ci przypadkiem po prostu o getsockname()?
>
Ja się nie pomyliłem,chodziło mi o funkcję getsockname,dzięki za pomoc.
--
Programowanie to moja pasja
no comments
diggit! del.icio.us! reddit!