当前位置: 技术问答>linux和unix
关于连接的UDP套接口
来源: 互联网 发布时间:2016-10-03
本文导语: 对于连接的UDP套接口,异步错误会返回给进程, 可是为什么还是堵塞在read上没返回呢? #include #include #include #include #include #include #include #include #define SER_PORT 9877 #define MAXLINE 4096 void dg_cli(FILE *fp, int s...
对于连接的UDP套接口,异步错误会返回给进程, 可是为什么还是堵塞在read上没返回呢?
#include
#include
#include
#include
#include
#include
#include
#include
#define SER_PORT 9877
#define MAXLINE 4096
void dg_cli(FILE *fp, int sockfd, const struct sockaddr *pservaddr, socklen_t servlen)
{
int n;
char sendline[MAXLINE], recvline[MAXLINE+1];
if(connect(sockfd, (struct sockaddr*)pservaddr, servlen) != 0) {
printf("connect error: %sn", strerror(errno));
exit(1);
}
while(fgets(sendline, MAXLINE, fp) != NULL) {
n = strlen(sendline);
if(write(sockfd, sendline, strlen(sendline)) != n) {
printf("write error : %s", strerror(errno));
exit(1);
}
n = read(sockfd, recvline, MAXLINE); //在这里没有返回错误
if(n