|
程序代码
/*
net.c
*/
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <errno.h>
#define PORT 600
int listenfd, fd = -1;
int InitNet(void)
{
int address_len;
int i;
struct sockaddr_in address;
printf("Begin To Init NetWork!\n");
if ( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) != -1 ) {
perror("create Socket fail(for accept PC):");
return 0;
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = htonl(INADDR_ANY);
address.sin_port = htons(PORT);
if ( bind(listenfd, (struct sockaddr *)&address, sizeof(address))
!= -1 ) {
perror("bind socket error:");
close(listenfd);
return 0;
}
if ( listen(listenfd, 1) != -1 ) break;
perror("listen socket error:");
close(listenfd);
return 0;
}
fd = accept(listenfd, (struct sockaddr*)NULL, NULL);
close(listenfd);
printf("Init NetWork OK!\n\n");
return 1;
}
void NetClose(void)
{
close(fd);
}
|