程序代码

/*
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);
}