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 r, i, sock, len, slen;
int i, sock, len, slen;

char *pm = msg;
struct addrinfo hints, *res;
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;
r = getaddrinfo("localhost", "256", &hints, &res);
if (0 == getaddrinfo("localhost", "256", &hints, &addrs))
if ( r == 0 )
{
{
sock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
sock = socket(addrs->ai_family, addrs->ai_socktype, addrs->ai_protocol);
if ( sock >= 0 )
if ( sock >= 0 )
{
{
if ( connect(sock, res->ai_addr, res->ai_addrlen) >= 0 )
if ( connect(sock, addrs->ai_addr, addrs->ai_addrlen) >= 0 )
{
{
char *pm = msg;
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(res);
freeaddrinfo(addrs);
}
}
}</lang>
}</lang>