⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dgclitimeo3.lc

📁 unix网络编程卷1:套接口API的全书源码
💻 LC
字号:
#include    "unp.h"##  1 ##src/advio/dgclitimeo3.c##static void sig_alrm(int);##  2 ##src/advio/dgclitimeo3.c##void##  3 ##src/advio/dgclitimeo3.c##dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen)##  4 ##src/advio/dgclitimeo3.c##{##  5 ##src/advio/dgclitimeo3.c##    int     n;##  6 ##src/advio/dgclitimeo3.c##    char    sendline[MAXLINE], recvline[MAXLINE + 1];##  7 ##src/advio/dgclitimeo3.c##    Signal(SIGALRM, sig_alrm);##  8 ##src/advio/dgclitimeo3.c##    while (Fgets(sendline, MAXLINE, fp) != NULL) {##  9 ##src/advio/dgclitimeo3.c##        Sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);## 10 ##src/advio/dgclitimeo3.c##        alarm(5);## 11 ##src/advio/dgclitimeo3.c##        if ((n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL)) < 0) {## 12 ##src/advio/dgclitimeo3.c##            if (errno == EINTR)## 13 ##src/advio/dgclitimeo3.c##                fprintf(stderr, "socket timeout\n");## 14 ##src/advio/dgclitimeo3.c##            else## 15 ##src/advio/dgclitimeo3.c##                err_sys("recvfrom error");## 16 ##src/advio/dgclitimeo3.c##        } else {## 17 ##src/advio/dgclitimeo3.c##            alarm(0);## 18 ##src/advio/dgclitimeo3.c##            recvline[n] = 0;    /* null terminate */## 19 ##src/advio/dgclitimeo3.c##            Fputs(recvline, stdout);## 20 ##src/advio/dgclitimeo3.c##        }## 21 ##src/advio/dgclitimeo3.c##    }## 22 ##src/advio/dgclitimeo3.c##}## 23 ##src/advio/dgclitimeo3.c##static void## 24 ##src/advio/dgclitimeo3.c##sig_alrm(int signo)## 25 ##src/advio/dgclitimeo3.c##{## 26 ##src/advio/dgclitimeo3.c##    return;                     /* just interrupt the recvfrom() */## 27 ##src/advio/dgclitimeo3.c##}## 28 ##src/advio/dgclitimeo3.c##

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -