UNIX網路程式設計學習(10)續--處理accept返回EINTR錯誤的TCP伺服器程式最終(正確)版本
tcpcliserv/tcpserv04.c
#include "unp.h"
int
main(int argc, char **argv)
{
int listenfd, connfd;
pid_t childpid;
socklen_t clilen;
struct sockaddr_in cliaddr, servaddr;
void sig_chld(int);
listenfd = Socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
Listen(listenfd, LISTENQ);
Signal(SIGCHLD, sig_chld); /* must call waitpid() */
for ( ; ; ) {
clilen = sizeof(cliaddr);
if ( (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0) {
if (errno == EINTR)
continue; /* back to for() */
else
err_sys("accept error");
}
if ( (childpid = Fork()) == 0) { /* child process */
Close(listenfd); /* close listening socket */
str_echo(connfd); /* process the request */
exit(0);
}
Close(connfd); /* parent closes connected socket */
}
}
相關文章
- UNIX網路程式設計學習(16)--使用poll的TCP伺服器程式程式設計TCP伺服器
- UNIX網路程式設計學習(15)--使用單程式和select的TCP伺服器程式程式設計TCP伺服器
- Linux系統程式設計(33)—— socket程式設計之TCP程式的錯誤處理Linux程式設計TCP
- UNIX網路程式設計學習(14)--使用select正確處理EOF的str_cli函式修訂版程式設計函式
- 【Android】AOP 面向切面程式設計(一) AspectJ 處理網路錯誤Android程式設計
- 《javascript高階程式設計》學習筆記 | 21.2.錯誤處理JavaScript程式設計筆記
- 學習風變程式設計,是我做過最正確的決定!程式設計
- 二、GO 程式設計模式:錯誤處理Go程式設計設計模式
- UNIX網路程式設計學習(11)--分析TCP回射服務+客戶程式:正常啟動與正常終止程式設計TCP
- 《Unix 網路程式設計》05:TCP C/S 程式示例程式設計TCP
- 最危險的程式設計錯誤程式設計
- Erlang學習筆記(六)順序程式的錯誤處理筆記
- UNIX網路程式設計學習(3)--簡單時間獲取伺服器程式程式設計伺服器
- UNIX網路程式設計學習(18)--UDP回射(伺服器+客戶端)程式程式設計UDP伺服器客戶端
- Linux系統程式設計(35)—— socket程式設計之TCP伺服器的併發處理Linux程式設計TCP伺服器
- 學習Rust 錯誤處理Rust
- python 學習-- TCP程式設計PythonTCP程式設計
- 翻譯 | 新手開始學習程式設計的正確姿勢程式設計
- 一個非常正確且強大的程式設計學習方法程式設計
- 正確理解PHP程式編譯時的錯誤資訊PHP編譯
- 011 Rust 非同步程式設計,返回錯誤Rust非同步程式設計
- Linux學習/TCP程式設計學習筆記LinuxTCP程式設計筆記
- API的設計(1) - 錯誤處理API
- 程式設計師正確看程式碼的方式程式設計師
- JavaScript 中錯誤正確處理方式,你用對了嗎?JavaScript
- rust學習十、異常處理(錯誤處理)Rust
- go 錯誤處理設計思考Go
- UNIX網路程式設計學習(4)--值-結果引數程式設計
- 程式錯誤型別及其處理型別
- Unix哲學(Unix程式設計藝術)程式設計
- Unix程式設計藝術,Unix哲學程式設計
- Java Tcp協議socket程式設計學習JavaTCP協議程式設計
- 程式設計師持續學習之道程式設計師
- 好程式設計師Java學習路線分享如何處理中文引數程式設計師Java
- JAVA網路程式設計(2)TCP程式設計Java程式設計TCP
- 錯誤程式碼的設計!
- 我在學習程式設計中犯的兩個最大錯誤程式設計
- python網路程式設計學習筆記(3):socket網路伺服器Python程式設計筆記伺服器