C++网络编程
个人学习整理
Wpromise_
备考中。。。。。。。
展开
-
I/O多路复用服务器——Select
当客户端连接变多时会创建连接相同个数的线程或进程,因此当数值比较大的时候,如果上千个连接,此时线程/进程占用以及CPU在上千个进程/线程之间的调度成本太大,造成性能降低。I/O多路复用就是通过一种机制实现一个进程可以监视多个描述符。相比之下I/O多路复用能够减少系统开销。原创 2023-10-12 22:26:48 · 88 阅读 · 0 评论 -
TCP多线程服务器--C/C++实现
多线程并发TCP服务器可以同时处理多个客户端请求,并发服务器常见的设计是“一个请求一个线程”:针对每个客户端的请求,主线程都会创建一个工作者线程,由工作者线程来负责和客户端进行通信。多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代。实例:四条连接在服务端上可以看见相同的ip和不同的端口。服务端代码:threadTcpSer.cpp。客户端代码:tcpClient.cpp。原创 2023-10-10 21:31:48 · 612 阅读 · 0 评论 -
TCP循环服务器--C/C++实现
TCP循环服务器一次只能处理一个客户端的请求,只有在这个客户端的所有请求都满足后,服务器才可以继续后面的请求。如果一个客户端占住服务器不放,则其他客户端都不能工作,因此TCP服务器一般很少用循环服务模型。TCP服务器接受一个客户端的连接,然后处理,完成了这个客户端的请求后,断开连接。二、当客户端连接到来时,accept函数返回新的连接套接字。四、在完成与该客户端的交互后关闭连接,返回执行步骤。三、服务器在该套接字上进行数据的接收和发送。客户端代码:tcpClient.cpp。原创 2023-10-09 20:51:52 · 233 阅读 · 0 评论 -
UDP循环服务器--C/C++实现
UDP循坏服务器实现方法:UDP服务器每次从套接字上读取一个客户端的请求并处理,然后将处理结果返回给客户端。因为UDP是无连接的,没有一个客户端可以一直占用服务器,服务器能满足每一个客户端的请求。服务端代码:udpserver.cpp。客户端代码:udpclient.cpp。原创 2023-10-09 20:14:33 · 177 阅读 · 0 评论