自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 了解Posix API和TCP/IP协议栈

在网络编程中我们的服务端离不开POSIX API中的socket()、bind()、linsten()、accpet()、recv()、send()、close();三次握手发生时机:客户端connect()函数发起请求,服务端listen()建立半连接为客户端分配一个tcp控制块,服务端应答和请求进行二次握手,客户端connect应答三次握手完成,随后accpet()从连接队列move出建立好的连接并返回一个fd。accpet()函数分配一个fd,并将这个fd和连接建立的tcp控制块关联。

2025-02-25 18:27:42 501

原创 初识reactor模式:用epoll实现reactor模式的TCPserver

reactor模式又叫事件驱动模式。在主函数中,我们将会先注册socket_fd的连接事件,然后在事件循环中,socket_fd将连接事件处理(两个动作:注册事件,添加到epoll实力epfd监听事件),其他事件触发则处理事件。

2025-02-23 18:00:44 202

原创 认识IO多路复用(select/poll/epoll)

2、事件集合(fd_set):fd_set是一个bit位数组,通过这个数组可以映射到不同的文件描述符,这个数组默认是1024位,可以监听1024个文件描述符。poll在select的基础上,减少了函数的参数,工作原理基本相同:准备好一个用于监听的socket_fd(设置套接字,绑定端口,开始监听),将socket_fd加入一个结构体数组struct pollfd fds[1024]中,调用poll监听事件,将socket_fd的连接事件添加进监听的fds,将其他client_fd的读事件处理,循环往复。

2025-02-22 20:31:38 608

原创 初步认识网络IO

基本工作流程:通过sockt函数获得一个文件描述符socket_fd, 用bind函数绑定主机地址和监听端口,再用listen函数监听,如果监听客户端连接accept函数会返回一个client_fd可以用于双端通信,建立连接后recv函数和send函数就可以收发消息了。将accpet函数分配的client_fd另起一个线程,由该线程处理clien_fd上的read函数和recv函数。使用网络助手连接tcpServer,成功收发数据。三个客户端都能即时与服务端进行通信。二、一请求一线程的tcpServer。

2025-02-11 20:21:59 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除