www.pudn.com > Server.rar > Server.c


/* Server */ 
 
#include  
#include  
#include  
#include  
#include  
#include  
#include  
 
#define PORT 8765 
 
int main(void){ 
	 
	int server_sk, client_sk, rec; 
	struct sockaddr_in6 saddr; 
	struct sockaddr_in6 caddr; 
	int caddrLen = sizeof(caddr); 
	 
	char buf[BUFSIZ]; 
	char bufAddr[] = "fec0:1::203:ffff:fe65:4aa0"; 
	int bufAddrLen = strlen(bufAddr); 
	 
	if((server_sk = socket(AF_INET6, SOCK_DGRAM, 0)) < 0){ 
		perror("socket"); 
		exit(1); 
	} 
	 
	memset(&saddr, 0, sizeof(saddr)); 
	saddr.sin6_family	= AF_INET6; 
	saddr.sin6_port		= htons(PORT); 
	 
	if(bind(server_sk, (struct sockaddr *)&saddr, sizeof(saddr)) < 0){ 
		perror("bind"); 
		exit(1); 
	} 
	 
	if((rec = recvfrom(server_sk, buf, BUFSIZ, 0, (struct sockaddr *)&caddr, &caddrLen)) < 0){ 
		perror("recvfrom"); 
		exit(1); 
	} 
	buf[rec] = '\0'; 
	printf("%s\n", buf); 
	 
	if(sendto(server_sk, bufAddr, bufAddrLen, 0, (struct sockaddr *)&caddr, caddrLen) != bufAddrLen){ 
		perror("sendto"); 
		exit(1); 
	} 
	 
	if(server_sk < 0){ 
		close(server_sk); 
	} 
	return 0; 
}