我遇到的问题在某种程度上非常具体。
我必须通过链接在 C 中实现滑动窗口协议。我的 sender.c 文件将速度、延迟和丢失或损坏文件的百分比作为参数接收。数据通过链接发送。由于这是一项学校作业,我不知道链接的实现细节,但是发送者和接收者需要使用端口和 ip 来初始化链接,我猜他们正在使用套接字。无论如何,我正在尝试将连接参数发送给接收者,以便将它们用于超时和控制流。我创建了发送代表速度和延迟的 2 个整数的数据帧有效负载,使用:
int s = (int)(*speed - '0');
int d = (int)(*delay - '0');
sprintf(t.payload,"%d%d",s,d);
当我在发件人文件中打印 s 和 d 变量时,结果是 1,1,这是正确的。之后,我将生成的 payloar 发送给接收方,其中有效载荷 [0] 分配给另一个称为速度的 int 变量,有效载荷 [1] 分配给另一个称为延迟的 int 变量。问题是这里它们的值是 49 而不是它们应该的值。我尝试在它们上使用 atoi() 函数,但是当我这样做时,延迟成功转换为 1,而速度转换为 11,这没有任何意义。我尝试了很多不同的方法来使其工作,将它们作为字符发送并在接收端转换它们也没有帮助。
有任何想法吗?
PS:对于巨大的帖子和我的英语错误感到抱歉!