网络编程
文章平均质量分 73
满山的猴子我的腚最红
这个作者很懒,什么都没留下…
展开
-
基于UDP协议的聊天室项目
就是一个超级简单的UDP聊天室的实现,主要就是基于UDP协议的服务器客户端搭建,以及IO进程线程的应用。原创 2023-11-21 18:55:45 · 114 阅读 · 0 评论 -
基于tcp协议及数据库sqlite3的云词典项目
这个小项目是一个网络编程学习过程中一个阶段性检测项目,过程中可以有效检测我们对于服务器客户端搭建的能力,以及一些bug查找能力。项目的一个简单讲解我发在了b站上,没啥心得,多练就好。数据库创建及导入单词表。原创 2023-11-20 16:06:15 · 499 阅读 · 0 评论 -
数据库编程sqlite3库安装及使用
但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。数据的来源有很多,比如出行记录、消费记录、浏览的。1. sqlite3系统命令 --- .开头。sqlite3_exec : 每查询到一行满足条件的信息, 都会调用一次callback函数显示结果。使用sql系统命令, 创建一个学生库sqlite3 student.db。数据库是“按照数据结构来组织、存储和管理数据的仓库”。内的、有组织的、可共享的、统一管理的大量数据的集合。原创 2023-11-18 09:55:03 · 1332 阅读 · 0 评论 -
网络协议头分析及抓包三次挥手四次握手
第三次握手:客户端接收到服务器的SYN包,以及ACK包,进入establish状态,同时向服务器发送ACK包(ACK=1, ack=1)。第二次握手:服务器接收到SYN包,确认客户端的SYN,发送ACK包(ACK=1 , ack=1),同时发送一个SYN包(SYN=1, seq=0),并进入SYN_RCVD状态。第四次挥手:主动关闭方收到FIN包,回复一个ACK包(ACK=1, ack=w+1)。第一次挥手,主动关闭方发送一个FIN包(FIN=1, seq = u)给被动方,进入FIN_WAIT_1状态;原创 2023-11-17 13:39:27 · 536 阅读 · 0 评论 -
udp多点通信-广播-组播
0.0.0.0(将本机所有可用的IP都绑定到套接字上:192.168.50.58,127.0.0.1(本地回环))(本地回环地址给自己发送,本地自测,不走网卡)255.255.255.255 给所有的网段中的所有主机发送广播,也是只能做局域网通信。广播方式发给所有的主机,过多的广播会大量的占用网络带宽,造成广播风暴,影响正常的通信;同一局域网内的主机都会接收到,如果其他主机没有加入广播站,就会将消息丢弃。unix域套接字编程,实现本间进程的通信,依赖的是s类型的文件;原创 2023-11-16 20:13:31 · 4093 阅读 · 0 评论 -
网络超时检测-11.9
实现某些特定协议要求,比如某些设备规定,发送请求数据后,如果多长时间后没有收到来自设备的回复,需要做出一些特殊处理。注意:一个进程只能有一个闹钟时间。如果在调用alarm时已设置过闹钟时间,则之前的闹钟时间被新值所代替。如使用select/poll/epoll函数最后一个参数可以设置超时。时间到了会给进程发送一个SIGALRM信号,这个信号也有结束进程的功能。==== SOL_SOCKET 应用层 ======== IPPROTO_IP 网络层 ======== IPPRO_TCP 传输层 ====原创 2023-11-15 20:06:24 · 260 阅读 · 0 评论 -
循环服务器
机制,将新连接的客户端描述符增加到描述符表中,只需要一个线程即可处理所有的客户端连接,在嵌入式开发中应用广泛,不过代码写起了稍显繁琐。多进程模型/多线程模型/IO多路复用(select、poll、epoll)fork之后的代码被复制,并且再被执行一遍。fork之前打开文件,fork之后拿到的是同一个文件描述符,操作的是同一个文件指针。fork之后两个进程相互独立,子进程拷贝了父进程的所有代码,但内存空间独立。为了处理多个客户机的请求, 服务器端的程序有不同的处理方式。5、IO多路复用模型。原创 2023-11-14 19:39:03 · 208 阅读 · 0 评论 -
TCP编程及基础知识
3.绑定套接字(bind())------------------------------>绑定手机。1.创建流式套接字(socket())------------------------> 有手机。4.监听套接字(listen())---------------------------->待机。7.关闭套接字(close())----------------------------->挂机。5.关闭套接字(close())--------------------------- >挂机。原创 2023-11-13 20:24:52 · 390 阅读 · 0 评论 -
epoll实现 IO复用
就绪链表: 当某一个文件描述符产生事件后,会自动调用callback函数,通过回调callback函数来找到链表对应的事件(读时间还是写事件)。异步I/O,epoll当有事件产生被唤醒之后,文件描述符主动调用callback(回调函数)函数直接拿到唤醒的文件描述符,不需要轮询,效率高。每个fd上面有callback(回调函数)函数,只有产生事件的fd才有主动调用callback,不需要轮询。epoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;3)epoll_wait等待事件产生。原创 2023-11-10 10:05:29 · 140 阅读 · 0 评论 -
poll实现IO复用
3、poll 创建一个表,表内包括一个fds结构体。当这些文件描述符中的一个或多个已准备好进行I。2.将关心的文件描述符加到表中。poll 与select对比。1.建立一个文件描述符的表。(2)poll实现客户端。poll实现IO复用。poll实现IO复用。原创 2023-11-09 18:53:14 · 77 阅读 · 0 评论 -
linux下IO模及其特点及select
ftp实现模拟核心原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在,那么清空文件然后写入。功能要求:1.项目基于tcp连接进行编写2.客户端命令行传参,传入ip、port、文件路径,实现把指定目录下的文件发送到服务器3.服务器接收并放到指定文件路径linux下IO模及其特点场景假设假设妈妈有一个孩子,孩子在房间里睡觉,妈妈需要及时获知孩子是否醒了,如何做?1.原创 2023-11-08 19:21:48 · 180 阅读 · 0 评论 -
UDP编程
发送信息(sendto())---------------------------->发送短信,根据填充的结构体信息。练习:实现如客户端发送"hello"给服务器端,服务器接着给客户端回,"recv:hello!创建数据报套接字(socket())----------------------->有手机。关闭套接字(close())--------------------------->发送完。把某个客户端登录的消息发给其它客户端。指定服务器的网络信息-----------------------原创 2023-11-07 09:57:51 · 430 阅读 · 0 评论 -
TCP编程及基础知识
3.绑定套接字(bind())------------------------------>绑定手机。1.创建流式套接字(socket())------------------------> 有手机。4.监听套接字(listen())---------------------------->待机。7.关闭套接字(close())----------------------------->挂机。5.关闭套接字(close())--------------------------- >挂机。原创 2023-11-06 09:03:45 · 417 阅读 · 0 评论 -
网络编程基础知识
在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。原创 2023-11-02 18:46:51 · 158 阅读 · 0 评论