unix #include win #include //int err = WSAStartup... WSADATA wsaData; int err = WSAStartup( MAKEWORD( 1,1), &wsaData); SOCKET_ERROR SOCKET s = socket( AF_INET, SOCK_STREAM/SOCK_DGRAM, 0) INVALID_SOCKET //struct sockaddr struct sockaddr_in adr; //adr.xxx=... adr.sin_family = AF_INET; adr.sin_port = htons( 80); adr.sin_addr.S_un.S_addr=inet_addr( "147.32.5.8"); //lepe inet_aton linux //gethostbyname( "www.fjfi.cvut.cz") //err = connect( s, adr, adr_length) err = connect( s, (struct sockaddr *)&adr, sizeof( adr)) SOCKET_ERROR const char request[] ="GET / HTTP/1.0\n\n"; //err = send( s, buffer, length, 0); err = send( s, request, sizeof( request)-1, 0); SOCKET_ERROR const char *request2 ="GET / HTTP/1.0\n\n"; err = send( s, request2, strlen( request2), 0); //err = recv( s, buffer, length, 0); SOCKET_ERROR err>=0 je pocet prijatych bytu char buff[ 1000]; err = recv( s, buff, sizeof( buff), 0); char *buff2; buff2 = (char *)maloc( 123456); err = recv( s, buff2, 123456, 0); err = close/closesocket( s); SOCKET_ERROR errno, GetLastError(),... --- server //struct sockaddr struct sockaddr_in srv_adr; //srv_adr.xxx=... srv_adr.sin_family = AF_INET; srv_adr.sin_port = htons( 12345); srv_adr.sin_addr.S_un.S_addr=INADDR_ANY; //nebo konkretni iface //err=bind( socket, adresa, delka_adresy) err=bind( s, (struct sockaddr *)&srv_adr, sizeof(srv_adr)); SOCKET_ERROR //err=listen( socket, pocet_paralelnich_prijmu_spojeni) err=listen( s, 5); SOCKET_ERROR //SOCKET s1 = accept( s, adresa, delka_adresy) struct sockaddr client_addr; int addr_size = sizeof( client_addr); SOCKET s1 = accept( s, &client_addr, &addr_size); INVALID_SOCKET send, recv, close s parametrem s1... (thread, subprocess) err=close( s); SOCKET_ERROR