当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > Linux下网络编程实现UDP,还有大量实例

Linux下网络编程实现UDP,还有大量实例 时间:2018-08-15      来源:未知

【1】概念

【2】程序流程

【3】相关函数

1)创建套接字

2)绑定网络信息结构体

3)接受数据

4)发送数据

【4】项目:基于udp 的网络聊天室

【1】概念

UDP(User Datagram Protocol即用户数据报协议):面向无连接的,不可靠的,不保证分组顺序到达的网络服务

【2】程序流程

(1)服务器:

创建套接字 socket( )

填充服务器网络信息结构体 sockaddr_in

将套接字与服务器网络信息结构体绑定 bind( )

进行通信 recvfrom( )/sendto( )

(2)客户端:

创建套接字 socket( )

填充服务器网络信息结构体 sockaddr_in

进行通信 sendto( )/recvfrom( )

使用socket创建sockfd时应使用SOCK_DGRAM 数据报套接字 udp

shell指令 nc 选项 服务器的IP地址 端口号(客户端)加 -u 代表UDP 不加代表TCP

加 -l 代表服务器 不加代表客户端

模拟的是回声服务器作用

【3】相关函数

1)创建套接字




 

2)绑定网络信息结构体




 

3)接受数据

 

注意:与accept类似,在定义socklen_t addrlen =sizeof(struct sockaddr); 取地址传参,必须先初始化,在不对len进行初始化时,recvfrom第一次接受的数据,内核处理会根据当前len值即乱码进行数据处理,得到的地址信息结构体数据也为乱码。之后,内核知晓地址信息结构体大小,会对len值进行修改,即第二次之后得到的地址信息结构体为正确的。未初始化时,如果变量内值为正数,则可以正常输出,但值不正确,但若变量内值为负值,内核无法处理,则会直接报错。

4)发送数据



【4】项目:基于udp 的网络聊天室

功能:

当有人登陆时,其他在线的人可以收到这个人的登录信息当有人发消息时,其他在线用户可以接受到这个信息当有人退出时,其他人可以收到这个人的退出信息服务器可以发送系统信息

 

服务器端:

如何实现端对端的通信:

由服务器通知在线人员,然后客户端选择与谁通信

可以在服务器的存储链表中增加一个成员变量,用来标识每一个成员,而后根据客户端的选择进行通信在服务器发送消息的功能中,首先判断客户端是发送单聊或是群聊

 

服务器:









上一篇:sqlite3数据库详细介绍,为sqlite3数据库学习加速

下一篇:网络编程基础概念总结

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部