C 接收文本文件的udp客户端
我试图通过UDP套接字接收文本文件,客户端构建良好,但提供了一个空白控制台,经过一些实验后,我发现问题在于接收,因此我发布了这部分代码:C 接收文本文件的udp客户端,c,C,我试图通过UDP套接字接收文本文件,客户端构建良好,但提供了一个空白控制台,经过一些实验后,我发现问题在于接收,因此我发布了这部分代码: size_t data=0; if(data=recvfrom( sd, file_buffer, sizeof(file_buffer), 0 , (struct sockaddr *) &server, &server_length) < 0) { printf("Error receiving f
size_t data=0;
if(data=recvfrom( sd, file_buffer, sizeof(file_buffer), 0
, (struct sockaddr *) &server, &server_length) < 0)
{
printf("Error receiving file.");
exit(1);
}
if(data==sizeof(file_buffer))
{
printf("Received Data:[%s]",file_buffer);
}
size\u t data=0;
如果(数据=recvfrom(sd,文件缓冲区,sizeof(文件缓冲区),0
,(结构sockaddr*)和服务器,&server_长度)<0)
{
printf(“接收文件时出错”);
出口(1);
}
if(data==sizeof(文件缓冲区))
{
printf(“接收数据:[%s]”,文件缓冲区);
}
如果忘记添加括号()
如果(data=recvfrom(sd,file\u buffer,sizeof(file\u buffer),0,(struct sockaddr*)&server,&server\u length)如果忘记添加括号()
如果(data=recvfrom(sd,file_buffer,sizeof(file_buffer),0,(struct sockaddr*)和server,以及server_length)正常,那么现在我在客户端接收数据,并且能够将其写入文本文件,但我仍然有一个问题:尽管正在写入数据,但我得到了“错误写入文件”在控制台上,我得到了一些冗余数据!!!@Aymankhalid读取更新的答案。您的
文件缓冲区不是字符串,您正在使用%s
打印其内容。这是您代码中的又一个错误。好的,现在我在客户端接收数据,并且能够将其写入文本文件中,但我仍然使用了有一个问题:尽管正在写入数据,我在控制台上得到了“错误写入文件”,而且我得到了一点冗余数据!!!@AaymanKhalid读取更新的答案。您的文件缓冲区
不是字符串,您正在使用%s
打印其内容。这是您代码中的又一个错误。
if(data = 1 < 0)
if(data = -1 < 0)
if( (data = recvfrom() ) < 0)
^ ^ added in your code
no_Of_bytes =recvfrom(
sd,
file_buffer,
sizeof(file_buffer) - 1,
0,
(struct sockaddr *) &server,
&server_length
);
file_buffer[no_Of_bytes] = '\0';