3,881
社区成员
发帖
与我相关
我的任务
分享
printf("==========waiting for client's request==========\n");
if ((acceptfd = accept(listenfd, (struct sockaddr*)NULL, NULL)) == -1) {
printf("accept socket error: %s(errno: %d)\n", strerror(errno), errno);
}
else
{
printf("accept sucess\n");
int rcvbuf_len = 0;
socklen_t len = sizeof(rcvbuf_len);
if (getsockopt(acceptfd, SOL_SOCKET, SO_RCVBUF, &rcvbuf_len, &len) < 0) {
perror("getsockopt: ");
}
printf("the recv buf len: %d\n", rcvbuf_len);
}
char recvmsg[246988] = {0};
ssize_t totallen = 0;
while (1) {
sleep(1);
ssize_t readlen = read(acceptfd, recvmsg, sizeof(recvmsg));
printf("readLen: %d\n", readlen);
if (readlen < 0) {
perror("read: ");
return -1;
}
else if (readlen == 0) {
printf("read finish: len = % ld\n", totallen);
close(acceptfd);
return 0;
}
else
{
totallen += readlen;
}
}
ssize_t writelen;
char sendmsg[246988] = {0};
int count = 0;
while (1)
{
++count;
if (count == 5) {
return 0;
}
writelen = write(connfd, sendmsg, sizeof(sendmsg));
if (writelen < 0) {
printf("write error\n");
close(connfd);
return 0;
}
else
{
printf("write success, writelen: %d\n", writelen);
}
}