Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 接收文本文件的udp客户端_C - Fatal编程技术网

C 接收文本文件的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

我试图通过UDP套接字接收文本文件,客户端构建良好,但提供了一个空白控制台,经过一些实验后,我发现问题在于接收,因此我发布了这部分代码:

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';