- 论坛徽章:
- 0
|
回复 2# fdl19881
客户端和服务器的连接代码应该不用了哈嘿嘿
void str_cli(FILE *fp, int sockfd)
{
int maxfdp1;
fd_set rset;
char sendline[MAXLINE], recvline[MAXLINE];
FD_ZERO(&rset);
for(; {
FD_SET(fileno(fp), &rset);
FD_SET(sockfd, &rset);
maxfdp1 = max(fileno(fp), sockfd) + 1;
if(select(maxfdp1, &rset, NULL, NULL, NULL) < 0)
err_sys("select"
if(FD_ISSET(sockfd, &rset))
{
memset(recvline, 0, sizeof(recvline));
if(read(sockfd, recvline, MAXLINE) == 0)
err_quit("str_cli:server terminated prematurely"
fputs(recvline, stdout);
}
if(FD_ISSET(fileno(fp), &rset))
{
// memset(sendline, 0, sizeof(sendline));
if(fgets(sendline, MAXLINE, fp) == NULL)
err_sys("fgets"
if(write(sockfd, sendline, strlen(sendline)) < 0)
err_sys("write"
}
}
} |
|