All pastes #2076373 Raw Edit

s_udp

public c v1 · immutable
#2076373 ·published 2011-06-07 20:16 UTC
rendered paste body
/* * Server UDP program */#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <error.h>#include <errno.h>#include <fcntl.h>#include <netdb.h>#define CHECK(x) \	if ( (x) == -1 ) { \	fprintf(stderr, "Error (@ %d) : %s\n",__LINE__, strerror(errno)); \	exit(-1); \	} int main (){	int sock, socklen;	struct sockaddr_in server, client;	char buffer[20];	int serverlen;			memset(&server, '\0', sizeof server);	server.sin_addr.s_addr = inet_addr("127.0.0.1");	server.sin_port        = htons(9090);	server.sin_family      = PF_INET;		CHECK ( sock = socket(PF_INET, SOCK_DGRAM | SOCK_NONBLOCK, 0));	//	fcntl ( sock, F_SETFL, O_NONBLOCK );		CHECK ( bind(sock, (struct sockaddr *)&server, sizeof server));		memset(&buffer, '\0', 20);	serverlen = sizeof(server);	/*	serverlen = recvfrom(sock, buffer, 20, MSG_DONTWAIT,				     (struct sockaddr *)&server, &serverlen);	printf("serverlen : %d\n", serverlen);	*/		do{	serverlen = recvfrom(sock, buffer, 20, 0, 			     (struct sockaddr *)&client, &serverlen);		printf("serverlen : %d\n", serverlen);		sleep(1);	}while ( serverlen == -1 );		printf("Message : %s\n", buffer);	close(sock);	return 0;}