[C] programowanie gniazd

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
lipiec
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 12 paź 2008, 19:18
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME

[C] programowanie gniazd

Post autor: lipiec »

witam,

mam problem z napisaniem pewnego programu, powiedzmy, że ma to być coś ala linuksowy wget tylko dużo bardziej okrojony (będę pobierał pliki tylko przez HTTP).

załóżmy, że na potrzeby wytłumaczenia mi jak to mniej więcej zrealizować pobieramy z Internetu tylko obrazki JPEG.
zrealizowanie całego połączenia, utworzenie gniazda do przesyłu danych już mam, ale nie potrafię odpowiednio posłużyć się funkcjami send(), recv(). Trzeba pewnie jeszcze na początku połączenia wysłać nagłówek HTTP do serwera ( coś ala przeglądarka ), ale ja nie umiem tego zrobić, a nie znalazłem podobnych przykładów w Internecie.

Z góry dziękuje za wskazówki!
Micha3
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 03 lut 2006, 21:07
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] programowanie gniazd

Post autor: Micha3 »

na temat samego protokołu http:
http://jmarshall.com/easy/http/
Jest tam wystarczająco dużo informacji aby samemu napisać klient i serwer(sam na podstawie tego napisałem serwer http)
Co do socketów to poszukaj "Beej?s Guide to Network Programming" (jest gdzieś na necie polskie tłumaczenie)
Awatar użytkownika
Lechu_
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 28 paź 2009, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: [C] programowanie gniazd

Post autor: Lechu_ »

Kod: Zaznacz cały

struct sockaddr_in s;		//deklaracja struktury na jakim porcie chcmey nasłuchiwać

s.sin_family = AF_INET;		//

s.sin_addr.s_addr= ;	// deklaracja struktury żeby nasłyuchiwac na wszystkich interfejsach  
                                  wpisujemy tu nazwe interfejsu badź INADDR_ANY wtedy będzie nasłuchiwał na wszystkich

s.sin_port=htons(atoi(argv[1]));// ta instrukcja przerobi nam odpowiednio zmienna w której jest numer portu 
                                              (przestawi odpowiednio bity)port podany jako argument argumentu 


fd = socket(AF_INET,SOCK_STREAM,0);	//otwarcie socketa

ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości