Sockets: Difference between revisions
Content added Content deleted
(Added PHP implementation) |
m (→{{header|C}}: minor changes) |
||
Line 170: | Line 170: | ||
int main() |
int main() |
||
{ |
{ |
||
int |
int i, sock, len, slen; |
||
⚫ | |||
struct addrinfo hints, * |
struct addrinfo hints, *addrs; |
||
memset(&hints, 0, sizeof(struct addrinfo)); |
memset(&hints, 0, sizeof(struct addrinfo)); |
||
hints.ai_family = AF_UNSPEC; |
hints.ai_family = AF_UNSPEC; |
||
hints.ai_socktype = SOCK_STREAM; |
hints.ai_socktype = SOCK_STREAM; |
||
if (0 == getaddrinfo("localhost", "256", &hints, &addrs)) |
|||
if ( r == 0 ) |
|||
{ |
{ |
||
sock = socket( |
sock = socket(addrs->ai_family, addrs->ai_socktype, addrs->ai_protocol); |
||
if ( sock >= 0 ) |
if ( sock >= 0 ) |
||
{ |
{ |
||
if ( connect(sock, |
if ( connect(sock, addrs->ai_addr, addrs->ai_addrlen) >= 0 ) |
||
{ |
{ |
||
⚫ | |||
do |
do |
||
{ |
{ |
||
Line 191: | Line 190: | ||
slen = send(sock, pm, len, 0); |
slen = send(sock, pm, len, 0); |
||
pm += slen; |
pm += slen; |
||
} while ( slen < len |
} while ((0 <= slen) && (slen < len)); |
||
} |
} |
||
close(sock); |
close(sock); |
||
} |
} |
||
freeaddrinfo( |
freeaddrinfo(addrs); |
||
} |
} |
||
}</lang> |
}</lang> |