![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 70
m0_59949484
这个作者很懒,什么都没留下…
展开
-
linux网络编程-网络信息检索、网络属性设置、超时检查
选项名称 说明 数据类型 ======================================================================== SOL_SOCKET ------------------------------------------------------------------------IPv6中引入了getaddrinfo0的新API,它是协议无关的,既可用于IPv4也可用于IPv6。原创 2024-04-02 12:03:23 · 484 阅读 · 0 评论 -
linux应用开发-在线词典项目
服务器端将用户信息和历史记录保存在数据库中。客户端输入用户名和密码,服务器端在数据库中查找、匹配,返回结果。根据客户端输入的单词在字典文件中搜索。分析服务器端和客户端流程。定义数据库中表的结构。原创 2023-08-08 19:11:40 · 130 阅读 · 0 评论 -
linux网络编程-广播、多播、套接字
前面介绍的数据包发送方式只有一个接受方,称为单播如果同时发给局域网中的所有主机,称为广播只有用户数据报(使用UDP协议)套接字才能广播以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址发到该地址的数据包被所有的主机接收255.255.255.255在所有网段中都代表广播地址创建用户数据报套接字缺省创建的套接字不允许广播数据包,需要设置属性setsockopt可以设置套接字属性接收方地址指定为广播地址指定端口信息原创 2023-08-07 18:16:55 · 327 阅读 · 0 评论 -
linux网络编程-网络分析测试工具、封包、IP和TCP头
IPv4 中使用 gethostbyname() 函数完成主机名到地址解析,这个函数仅仅支持 IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储 IPv4 地址的空间。IPv6 中引入了 getaddrinfo()的新 API,它是协议无关的,既可用于 IPv4 也可用于 IPv6。gethostbyname() 根据主机名取得主机信息 endhostent()optname指定控制的方式(选项的名称),我们下面详细解释。3. SYN,,ACK, FIN 等标志符号应该写上|原创 2023-08-07 15:58:53 · 222 阅读 · 0 评论 -
linux网络编程-多路IO复用
阻塞I/O: 最常用非阻塞I/O: 可防止进程阻塞在I/O操作上,需要轮询I/O 多路复用: 允许同时对多个I/O进行控制信号驱动I/O:一种异步通信模型。原创 2023-08-07 13:35:46 · 51 阅读 · 0 评论 -
llinux网络编程-UDP编程
接收数据:`recvfrom()`函数用于从套接字接收数据。- 获取发送方地址:`recvfrom()`函数还可以获取发送方的地址信息。使用`recvfrom()`函数可以实现对套接字的数据接收操作,并获取发送方的地址信息,适用于网络通信中需要接收数据并处理的场景。函数`recvfrom()`用于从一个已连接或未连接的套接字接收数据,并将数据存储到指定的缓冲区中。- `addrlen`:发送方地址缓冲区的大小,接收后会被修改为实际地址大小。- `src_addr`:发送方地址的缓冲区指针。原创 2023-08-06 18:51:25 · 86 阅读 · 0 评论 -
llinux网络编程-并发服务器(多进程)
每个连接都会创建一个新的线程,这些线程共享相同的内存空间,可以直接访问共享的数据。- 多进程并发服务器:使用多个独立的进程来处理并发连接请求。每个连接都会创建一个新的进程,这些进程之间是相互独立的,通过进程间通信来传递数据。总的来说,多进程并发服务器适用于计算密集型任务和对异常处理要求较高的场景,而多线程并发服务器适用于连接密集型任务和对资源利用效率要求较高的场景。- 对于异常处理要求较高的场景,一个进程的崩溃不会影响到其他连接的处理。- 对于资源的高效利用要求较高的场景,线程的创建和销毁开销相对较小。原创 2023-08-06 13:03:42 · 43 阅读 · 0 评论 -
llinux网络编程-并发服务器(多线程)
【代码】llinux网络编程-并发服务器(多线程)原创 2023-08-06 12:30:34 · 46 阅读 · 0 评论 -
llinux网络编程-网络编程API函数
如果是IPV6的编程,要使用struct sockddr_in6结构体(详细情况请参考man 7 ipv6),通常更通用的方法可以通过struct sockaddr_storage来编程。sockfd: 经过前面socket()创建并通过bind(),listen()设置过的fd。addr: struct sockaddr的结构体变量的地址。sockfd: 通过socket()函数拿到的fd。sockfd: 通过socket()函数拿到的fd。sockfd: 通过socket()函数拿到的fd。原创 2023-08-05 21:13:27 · 40 阅读 · 0 评论 -
llinux网络编程-网络编程的预备知识、TCP网络编程
提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。cp: 点分形式的IP地址,结果是32位整数(内部包含了字节序的转换,默认是网络字节序的模式)mobileIPV6: local IP(本地注册的IP),roam IP(漫游IP)局域网IP: 192.XXX.XXX.XXX 10.XXX.XXX.XXX。组播IP: 224.XXX.XXX.XXX~239.xxx.xxx.xxx。原创 2023-08-05 18:56:44 · 32 阅读 · 0 评论 -
llinux网络编程-网络发展历史和分层、TCP/UDP特点
Internet—“冷战”的产物1957 年 10 月和 11 月,前苏联先后有两颗“Sputnik”卫星上天1958 年美国总统艾森豪威尔向美国国会提出建立 DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称 ARPA。原创 2023-08-05 18:17:25 · 44 阅读 · 0 评论