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