|
|
程序代码
[PHP]#include<sys/socket.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<netdb.h>
int main(int argc, char** argv) {
struct sockaddr_in servaddr, clientaddr;
int listenfd, connfd;
int clientlen;
int service_port =9999;
listenfd = socket(PF_INET, SOCK_STREAM, 0);
if(listenfd < 0) {
perror("socket error\n");
exit(-1);
}
memset(&servaddr,0,sizeof(struct sockaddr_in));
servaddr.sin_family=PF_INET;
servaddr.sin_port=htons(service_port);
servaddr.sin_addr.s_addr=INADDR_ANY;
if( bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0 ) {
perror("bind error");
exit(-1);
}
if( listen(listenfd, 5) < 0 ) {
perror("listen error");
exit(-1);
}
for(;;) {
connfd = accept( listenfd, (struct sockaddr *)&clientaddr, &clientlen );
if( connfd < 0 ) {
perror("accept error");
exit(-1);
}
}
exit(0);
}[/PHP]
发出如下连接请求:
- parrot ~ # telnet localhost 9999
- Trying 127.0.0.1...
- Connected to localhost.
- Escape character is '^]'.
- Connection closed by foreign host.
- parrot ~ #
复制代码
服务器端就退出了
- parrot ~ # ./a.out
- accept error:[color=Red] Invalid argument[/color]
- parrot ~ #
复制代码 |
|