C中的UDP:从A向B发送100万字节

C中的UDP:从A向B发送100万字节,c,sockets,networking,udp,C,Sockets,Networking,Udp,我必须通过UDP协议从A向B发送100万字节。 这100万字节可以是一个随机字符数组。我知道发送大于65507字节的数据包是不可能的,而且众所周知,UDP不能保证消息的到达 我想从A到B发送几个字符,除非B不能达到100万。接下来,B必须向a发送一个标志作为确认。但在这里,也不能保证ack已经到达A端系统。 还有一个额外的终端系统C,如果需要的话,我可以在这里实现一些额外的代码 我想为每个终端系统创建两个进程,一个用来发送和接收百万字节,另一个用来发送和接收标志。 我曾试图实施它,但我不是很信服

我必须通过UDP协议从A向B发送100万字节。 这100万字节可以是一个随机字符数组。我知道发送大于65507字节的数据包是不可能的,而且众所周知,UDP不能保证消息的到达

我想从A到B发送几个字符,除非B不能达到100万。接下来,B必须向a发送一个标志作为确认。但在这里,也不能保证ack已经到达A端系统。 还有一个额外的终端系统C,如果需要的话,我可以在这里实现一些额外的代码

我想为每个终端系统创建两个进程,一个用来发送和接收百万字节,另一个用来发送和接收标志。 我曾试图实施它,但我不是很信服。一个重要的必要条件是避免忙碌的等待


我需要一些帮助来向前推进。

如果需要确认,那么为什么要使用UDP?不使用TCP但尝试使用UDP重新实现它的原因是什么?您需要处理TCP处理的问题-排序、重试、确认、校验和等。因为您无法从随机数据中区分数据是否按顺序到达,您必须对数据段进行排序,因为UDP不能保证按顺序交付,就像它不能保证交付一样。正如您所看到的,注释的长度与用户代表的大小成正比。21K 30个字符,80K 77个字符,300K 347个字符。这不是一个例子,我希望没有其他与这个比例相关的东西……考虑到你需要为一个类做这个练习,你需要使用UDP模拟TCP会话。您需要:建立一个连接,连接一些UDP消息;将数据分割成可以通过UDP发送的子块;在子块中包含标识信息,以便您知道它们的存储顺序;考虑是否在数据中包含校验和,以便知道数据是否完整到达;传输完成后,关闭连接;如果数据包丢失,请重试部分;ack重复分组;等