- 2024-11-21在Linux中使用 epoll 处理TCP连接断开问题
在Linux中使用 epoll 处理TCP连接时,默认情况下无法直接检测到网线断开这类物理链路故障。这是因为TCP协议栈的工作机制导致的。当网线断开后,本地TCP协议栈并不能立刻感知到连接已经不可用。在底层网络设备(如网卡)没有向TCP协议栈反馈链路故障的情况下,TCP连接会处于一种看
- 2024-11-17网络编程-002-UDP通信
1.UDP通信的简单介绍1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高1.2包大小有限制,不发大于路径MTU的数据包1.3容易丢包1.4可以实现一对多,多对多2.客户端与服务端=发送端与接收端代码框架收数据方一般都是客户端/接收端3.头文件#include<arpa/ine
- 2024-11-15Linux编程:基于 Unix Domain Socket 的进程/线程间通信实时性优化
文章目录0.引言1.使用`epoll`边缘触发模式非不要不选择阻塞模式边缘触发(ET)模式优点示例2.使用实时调度策略3.CPU绑定4.使用无锁缓冲区5.优化消息传递的大小和频率6.使用`SO_RCVTIMEO`和`SO_SNDTIMEO`7.示例代码其他阅读0.引言前几天被问到“如何优
- 2024-10-29【linux网络编程】| socket套接字 | 实现UDP协议聊天室
前言:本节内容将带友友们实现一个UDP协议的聊天室。主要原理是客户端发送数据给服务端。服务端将数据再转发给所有链接服务端的客户端。所以,我们主要就是要实现客户端以及服务端的逻辑代码。那么,接下来开始我们的学习吧。 ps:本节内容建议了解so
- 2024-10-28网络编程_day2
#1024程序员节#TCP服务器、客户端#网络模型#网络的体系结构#OSI模型TCP#IP模型网络调试命令(ping)#netstat#Dos#TCP、UDP#TCP:全双工通信、面向连接、可靠#UDP:全双工通信、面向无连接、不可#实现FTP功能(粘包)目录【0】复习【1】TCP初版服务器初版客户端练习终版服
- 2024-10-25网络协议基础(2):socket套接字及TCP、UDP的实现
socket套接字及TCP、UDP的实现socket套接字socket的基本概念socket的类型Socket的工作流程Socket的编程接口(C++示例)1.创建Socket2.绑定地址3.监听连接4.接受连接5.连接到服务器6.发送数据7.接收数据8.关闭Socketsocket相关的结构体sockaddr结构体sockaddr
- 2024-10-19Linux C语言TCP协议实战
文章目录1.TCP简介2.搭建框图3.相关函数介绍3.1socket函数3.2bind函数3.3listen函数3.4accept函数3.5connect函数3.6send函数3.7recv函数3.8其他函数4.实战4.1一对一模型4.1.1server.c4.1.2client.c4.1.3终端结果4.2多进程模型4.2.1server.c4.2.2cl
- 2024-10-19项目模块三:Socket模块
一、模块设计1、套接字编程常用头文件展示#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<fcntl.h>2、成员函数设计(1)创建套接字bool Create()intsocket(intdomain,inttype,
- 2024-09-29Web服务器
目录一、引言二、环境准备三、网络编程基础 1.socket概述 2.创建socket 3.绑定地址和端口 4.监听客户端连接 5.接受客户端连接四、实现Web服务器 1.创建socket 2.绑定地址和端口 3.监听客户端连接 4.处理客户端请求 5.
- 2024-09-13socket远程命令通信简单实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、代码示例?总结前言提示:这里可以添加本文要记录的大概内容:socket远程命令通信简单实现内核版本5.10cli端连接上ser端后,ser发送给cli端命令执行。cli支持命令:CMD_TYPE_TEST:测试,字
- 2024-09-13网络套接字编程(二)
socket常见API创建套接字:(TCP/UDP,客户端+服务器)intsocket(intdomain,inttype,intprotocol);绑定端口号:(TCP/UDP,服务器)intbind(intsockfd,conststructsockaddr*addr,socklen_taddrlen);监听套接字:(TCP,服务器)intlisten(intsockfd,intbacklog);接收请
- 2024-09-12day09(网络编程基础)服务器模型
目录服务器模型循环服务器并发服务器多进程多线程IO多路复用并发服务器总结服务器模型在网络通信中,通常一个服务器要连接多个客户端为了处理多个客户端的请求,通常有多种表现形式循环服务器一个服务器在同一时间只能处理一个客户
- 2024-09-12udt聊天室
创建一个简单的udp聊天室服务器代码思路:初始化:创建UDP套接字。配置服务器的IP和端口号,并绑定套接字到这个地址。数据接收和处理:使用循环接收客户端发来的消息。recvfrom()解析消息类型(如登录、发送、下线)和内容。广播消息:对于聊天消息,将其广播给所有连接的客户端。对于
- 2024-09-11IO多路复用
epoll功能及参数:intepoll_ctl(intepfd,intop,intfd,structepoll_event*event);功能:控制epoll属性,比如给红黑树添加节点。参数:1.epfd:epoll_create函数的返回句柄。2.op:表示动作类型,有三个宏:EPOLL_CTL_ADD:注册新的fd到epfd中EPOLL_CTL_MOD:修改已注册
- 2024-09-10day08(网络编程基础)Linux IO 模型(IO多路复用)
目录场景假设select特点编程步骤练习练习一:输入鼠标的时候,响应鼠标事件,输入键盘的时候,响应键盘事件(两路IO)练习二:用select创建并发服务器,可以同时连接多个客户端(0,sockfd)(12min)练习三:用select创建并发服务器,可以与多个客户端进行通信(监听键盘、socket、多个accept
- 2024-09-10IO多路复用、服务器模型
IO多路复用:epollepoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;eg:1GB机器上,这个上限10万个左右。每个fd上面有callback(回调函数)函数,只有产生事件的fd才有主动调用callback,不需要轮询。注意:Epoll处理高并发,百万级1.红黑树:是特殊的二叉树
- 2024-09-10Day5网络编程:epoll+服务器模型+ftp
1.io多路复用:epollepoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;eg:1GB机器上,这个上限10万个左右。每个fd上面有callback(回调函数)函数,只有产生事件的fd才有主动调用callback,不需要轮询。注意:Epoll处理高并发,百万级1.红黑树:是特殊的二叉
- 2024-09-09day04(网络编程基础)tcp编程
目录tcp编程流程服务器客户端函数接口socketbindlistenacceptrecvconnectsend初始版服务器客户端 加功能:1.客户端连接成功后进入循环发送状态,从终端获取用户输入并发送,当用户输入“quit”字符后退出循环并关闭客
- 2024-09-06网络编程(TCP+网络模型)
【1】TCP初版服务器#include<stdio.h>#include<sys/types.h>/*SeeNOTES*/#include<sys/socket.h>#include<netinet/in.h>#include<netinet/ip.h>#include<unistd.h>#include<arpa/inet.h>#include<string.h>
- 2024-09-05万字解析qinguoyi / TinyWebServer项目的源码
前言项目地址项目详细介绍本文章适合刚学习完C++基础知识并尝试实现一个网络编程项目的同学,其中包含了该项目的代码逐行注释和解析以及许多刚学习网络编程中会遇到的疑问。项目简介:Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.使用线
- 2024-09-05计算机网络练级第二级————网络套接字1
前情提要IP地址和端口(一看就会)前文说到IP地址是标注了全世界唯一的一台计算机,两边计算机通过这个地址传递数据(送快递)端口是什么呢?它标注了这台计算机唯一一个进程。就像送快递你知道了地址,但不知道具体是哪个人,那我送个勾啊。所以端口就像是地址里这个具体的人,而IP地址呢?就
- 2024-09-04【为项目做准备】Linux网络编程重点知识(项目通用知识)
Linux网络编程的简单梳理,不够再来更新~socket()setsockopt()bind()listen()accept()socket()socket()函数,用来创建套字节头文件:#include<sys/socket.h>函数:intsocket(intdomain,inttype,intprotocol)相应参数说明:-domain:指定套接字的地址族,常见的AF_INET
- 2024-09-01嵌入式全栈开发学习笔记---Linux网络编程(面试/开发重点)
目录网络概述Linux网络基础网络模型TCP/IP协议族体系结构数据封装TCP协议TCP协议头部结构TCP三次握手TCP四次挥手UDP协议UDP协议头部结构套接字Socket端口号和IP地址地址转换字节序转换TCP服务器服务器建立步骤第一步,创建socket--socket()第二步,绑定信息Bin
- 2024-08-30多路复用
#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include<unistd.h>#include<string.h>#include<sys/time.h>#include<sys/select.h> intmain(void){ //1.创建套接字
- 2024-08-28TCP并发服务器
一、整体框架二、服务器单循环服务器:同一时刻,只能处理一个客户端的任务并发服务器:同一时刻,只能处理多个客户端的任务UDP是具备并发性的,是因为UDP是无连接的,所以处理器可以处理过来TCP实际上是单循环的服务器,只能建立一对一连接,其他人不能再与其建立连接,之前只有一个套