- 论坛徽章:
- 0
|
请问我在hp-ux下写一网络通讯程序,代码如下
- int main(int argc, char **argv)
- {
- int listenfd, connfd, i, clilen, pid;
- struct sockaddr_in cliaddr, servaddr;
- if((listenfd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) < 0)
- {
- printf(\"create socket failed.\\n\");
- exit(1);
- }
- printf(\"create socket success.\\n\");
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
- servaddr.sin_port = htons(20000);
- while(i < 0)
- i = bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
- if(i < 0)
- {
- printf(\"socket bind failed.\\n\");
- exit(1);
- }
- printf(\"socket bind success.\\n\");
- if(listen(listenfd,10) < 0)
- {
- printf(\"listen failed.\\n\");
- exit(1);
- }
- printf(\"LISTEN READY......................\\n\");
- for(;;)
- {
- clilen = sizeof(cliaddr);
- if((connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen)) < 0)
- {
- if(errno == EINTR)
- {
- // printf(\"accept continue\\n\");
- continue;
- }
- else
- {
- perror(\"accept error\\n\");
- printf(\"accept failed.\\n\");
- }
- }
- if((pid = fork()) == 0)
- {
- close(listenfd);
- deal_with(connfd);
- exit(9);
- }
- else if(pid >; 0)
- {
- signal(SIGCHLD,sig_child);
- }
- else
- {
- perror(\"fork error \\n\");
- exit(1);
- }
- close(connfd);
- }
- }
复制代码
可是我用netstat -an | grep 20000,确查不到这个监听,是怎么回事呀,请高手指教
谢谢啦! |
|