传智扫地僧课程学习笔记。
接着上次accept后面的来写,
struct sockaddr_in perraddr;
int perrlen = sizeof( perraddr);
int conn = 0;
conn = accept( sockfd, (struct sockaddr *)&perraddr, &perrlen);
if( -1 == conn )
{
perror("listen\n");
exit( 0);
}
printf("perradd:%s\n perrport:%d\n", inet_ntoa( perraddr.sin_addr), ntohs(perraddr.sin_port));
char revbuf[1024] = {0};
while( 1)
{
int ret = read( conn, revbuf, sizeof(revbuf));
if( ret == 0)
{
printf("no le");
exit( 0);
}
else if( ret<0)
{
perror("error");
exit( 0);
}
fputs( revbuf, stdout);
write( conn, revbuf, ret);
}
后面的读,read,
第一个参数,就是前面的conn,
第二个和第三个参数,可以理解为一个,就是我们用于接收的地方,
返回值,等于0代表没了,或者说对方停止了,
小于0是错误,大于0就是正常传输啊,
然后把接收到的内容,打出来,
再传回去,