2020/03/09 基于UDP的自定义协议

本文记录了基于UDP的自定义协议编写过程,包括头文件声明、函数定义、客户端和服务端的修改及编译步骤。同时,解决了服务端出现的connect error问题,发现UDP不需要connect(),并探讨了获取客户端地址的方法。最后提到了标准输入流中的STDIN_FILENO及其在系统API和C++库中的应用。
摘要由CSDN通过智能技术生成

笔记1 编写自定义协议的过程

1.  ./include/msg.h 头文件 声明函数

2. ./src/msg.c  包含"msg.h"文件,然后给出函数的定义

3. 编译msg.c 并生成msg.o文件    gcc -o obj/msg.o -Iinclude -c src/msg.c 

4. 修改echo_udp_client,客户端发送和接收改用自定义函数,并设定发送信息的头部

5. 编译gcc -o bin/echo_udp_client -Iinclude obj/msg.o src/echo_udp_client.c

6. 修改echo_udp_server,解析客户端发送信息的顺序

7. 编译gcc -o bin/echo_udp_server -Iinclude obj/msg.o src/echo_udp_server.c

8. 运行服务端和客户端程序

笔记2解决服务端bug

现在遇到的问题是:

运行服务端会出现connnect error

追溯此问题出现的原因发现,面向无连接的UDP不需要connect()函数,但想要从sockfd套接字中获取客户端的地址,UDP是通过recv()recvfrom()等函数实现的,这就麻烦了TwT,因为我要用自定义的接收函数呀!

现在的任务:

1. 搞清楚UDP的接收函数  2. 找到获取客户端地址的方法  3. 如果找不到接收地址的方法,就更换排序方法(可以把顺序放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值