sách gpt4 ăn đã đi

客户端-服务器程序

In lại Tác giả: Walker 123 更新时间:2023-11-30 18:14:42 26 4
mua khóa gpt4 giày nike

我们在UNIX环境下制作了简单的client.cserver.c程序。我们使用它来传输一个简单的文本文件,首先打开它,然后读取它并使用 openđọcsend 系统调用发送;在客户端,我接收它,并通过在服务器计算机上创建文件来写入它。传输进行得相当顺利,但客户端收到的文件与服务器端不完全相同。在可读字符之间有一些不可读字符。您能告诉我这可能是什么原因吗?虽然文件的大部分内容是相同的,但只有一小部分之间存在差异。

代码可见đây .

Cảm ơn!

服务器端循环:

LÀM
{
n=read(t,buf,100);
write(1,buf,strlen(buf));
send(connected, buf,strlen(buf), 0);
} while(n!=0);

在客户端

LÀM
{
bytes_recieved=recv(sock,recv_data,100,0);
count=write(t,recv_data,strlen(recv_data));
} while(bytes_recieved!=0);

câu trả lời hay nhất

在第一种情况下,不要使用strlen()。绝对不能保证文件流中的任何位置都会有 NUL 字节,事实上对于文本文件来说永远不应该有 NUL 字节。

每次循环时,您都应该输出收到的实际字节数,而不是 strlen() 认为缓冲区中可能有多少字节:

LÀM
{
bytes_received = recv(sock, recv_data, 100, 0);
if (bytes_received < 0) {
perror("read");
phá vỡ;
} else if (bytes_received == 0) {
phá vỡ;
} khác {
count = write(t, recv_data, bytes_received);
// in theory - add error check here too!
}
} while (count > 0);

关于客户端-服务器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/778544/

26 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress