#include "header.h"
#define MAXBUF 1024
typedef struct sockaddr SA;
void child_function(int connect_fd);
void child_function(int connect_fd)
{
char buffer[MAXBUF];
memset(buffer,'\0',sizeof(buffer));
if(read(connect_fd,buffer,sizeof(buffer)) < 0)
{
perror("read error");
exit(-1);
}
printf("the client message :%s\n",buffer);
int i;
for(i = 0; i < strlen(buffer); i++)
{
buffer[i] = toupper(buffer[i]);
}
if(write(connect_fd,buffer,strlen(buffer)) < 0)
{
perror("write error");
exit(-1);
}
close(connect_fd);
}
int main(void)
{
int listen_fd,connect_fd;
struct sockaddr_in serveraddr,clientaddr;
socklen_t addrlen;
pid_t pid;
if((listen_fd=socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket fail");
exit(-1);
}
memset(&serveraddr,0,sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(8000);
serveraddr.sin_addr.s_addr=inet_addr("127.0.0.1");
if(bind(listen_fd,(SA *)&serveraddr,sizeof(serveraddr)) == -1)
{
perror("bind fail");
exit(-1);
}
if(listen(listen_fd,10) == -1)
{
perror("listen fail");
exit(-1);
}
while(1)
{
addrlen = sizeof(clientaddr);
if((connect_fd=accept(listen_fd,(SA *)&clientaddr,&addrlen)) == -1)
{
perror("accept fail");
exit(-1);
}
printf("a new connection :%d\n",connect_fd);
if((pid = fork()) == 0)
{
close(listen_fd);
child_function(connect_fd);
exit(0);
}else if(pid < 0)
{
perror("fork");
break;
}else
{
close(connect_fd);
}
}
close(listen_fd);
}相关推荐
并发服务器的三种实现模型测试代码
Linux 网络编程——并发服务器的三种实现模型,相关教程如下: http://blog.youkuaiyun.com/tennysonsky/article/details/45671215
服务器并发模型
单循环服务器:服务器在同一时刻只能响应一个客户端的请求并发服务器模型:服务器在同一时刻可以响应多个客户端的请求UDP:无连接TCP:有连接1.多进程资源空间消耗大效率低2.多线程相对进程资源消耗小效率较高3.IO多路复用:为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。优势:系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。多进程并发服务器多线程并发服务器。
企业固定资产管理的SAP实战:FICO模块配置与折旧范围设置详解
本文深入解析了SAP FICO模块中固定资产会计配置的核心实践,重点阐述了折旧范围的设计哲学与配置逻辑。通过详解折旧表、折旧范围、资产分类及折旧码等关键配置步骤,指导企业如何搭建满足多会计准则(如CAS、IFRS)与税务要求的资产管理体系,实现资产购置、折旧计提与报废清理的自动化与精准化。
并发服务器模型
1.tcp并发服务器模型 服务器接收到客户端请求后,建立线程,进行处理; I/O多路复用并发服务器模型: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); void FD_CLR(int fd
NWD 格式转换 STL 全流程:专业方案与迪威模型网在线转换详解
在3D模型处理中,将NWD文件转换为STL格式是常见的需求,特别是在3D打印和计算机辅助制造等领域。NWD文件由Autodesk开发,主要用于建筑、工程和施工行业,包含丰富的几何图形和材质信息,但因其专有格式和大文件大小,限制了其应用范围。相比之下,STL格式广泛应用于3D打印,仅包含表面几何信息。转换NWD到STL的原因包括拓展模型应用场景和便于模型编辑。转换方法包括使用专业软件如Autodesk Navisworks配合Blender或3ds Max,或使用专门的转换工具如CADExchanger。
利用ArcMap实现遥感图像语义分割标注的完整流程解析
本文详细解析了利用ArcMap进行遥感图像语义分割标注的完整工作流。从工程创建、数据导入、SHP文件创建,到实战勾画地物、要素转栅格,再到最终的裁剪对齐,提供了每一步的关键操作与避坑指南。该方法特别适合处理大尺寸、带地理坐标的遥感影像,能高效产出精准对齐的图像-标签对,为后续深度学习模型训练奠定可靠的数据基础。
【网络编程】并发服务器模型
同一个时刻可以响应多个客户端的请求,常用的模型有多进程模型/多线程模型/IO多路复用模型。
从零构建机械臂规划栈:Pinocchio、OMPL与Ruckig的工程化融合实践
本文详细介绍了如何从零构建机械臂规划栈,通过融合Pinocchio、OMPL和Ruckig三大核心组件,实现高性能的机械臂运动规划与轨迹生成。文章深入探讨了技术选型、工程架构设计及实战优化技巧,特别针对逆解、路径规划和轨迹平滑等关键环节提供了实用解决方案,适用于工业场景中的高实时性需求。
网络编程-----服务器(多路复用IO 和 TCP并发模型)
每次调用需要从用户态复制整个fd_set到内核态,时间复杂度O(n)限制(通常1024),超出会导致未定义行为。可以从客户端读取数据,也可以自身从键盘输入。
ENVI5.6 自动化流程:GF系列卫星影像批处理与质量优化
本文详细介绍了如何利用ENVI5.6构建针对GF-2、GF-6、GF-7系列卫星影像的自动化批处理流水线。通过配置Batch Processing工具,实现从正射校正到图像融合的全流程批量处理,并分享参数设置、质量监控与故障排查的实战经验,旨在显著提升海量遥感影像的处理效率与成果质量。
别再死记硬背公式了!用Multisim仿真软件,5分钟搞懂三极管放大电路的工作原理
本文介绍如何利用Multisim仿真软件快速掌握三极管放大电路的工作原理,避免死记硬背公式。通过动态实验和参数调整,直观理解三极管的工作状态和放大效果,提升学习效率和实践能力。
【转】常用服务器模型总结
UNPv3上一共总结了9种服务器模型分别是: 1.迭代服务器 2.并发服务器,为每个客户fork一个进程 3.预先派生子进程,每个子进程都调用accept,accept无上锁保护 4.预先派生子进程,以文件锁的方式保护accept 5.预先派生子进程,以线程互斥锁上锁的方式保护accept 6.预先派生子进程,由父进程向子进程传递套接口描述字 7.并发服务器,为每...
【深度学习新浪潮】算力上太空:NVIDIA Space-1 Vera Rubin Module 深度技术解析
NVIDIA Space-1 Vera Rubin Module 不只是一款芯片模组,它是天地一体化 AI 的基础设施底座。它用成熟的 GPU 架构 + 航天级加固,把地面 AI 生态直接平移到太空。下一个 AI 创新战场,不在云端,而在轨道。在轨 LLM星上多模态实时处理卫星自主组网与分布式推理太空算力成为云计算的一级节点参考资料NVIDIA 官方博客:NVIDIA 推出太空计算,将 AI 送入太空轨道GTC 2026 黄仁勋主题演讲。
网络编程之并发服务器,分布服务器
一、并发服务器,分布式服务器(结构) 什么是分布式系统架构 分布式系统架构简单的说是运行在多个处理器上的软件构架设计。 分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。 网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 架构,又名软
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
UNIX网络编程——常用服务器模型总结
下面有9种服务器模型分别是:迭代服务器。并发服务器,为每个客户fork一个进程。预先派生子进程,每个子进程都调用accept,accept无上锁保护。预先派生子进程,以文件锁的方式保护accept。 预先派生子进程,以线程互斥锁上锁的方式保护accept。预先派生子进程,由父进程向子进程传递套接口描述字。 并发服务器,为每个客户请求创建一个线程。预先创建线程,以互斥锁上锁方式保护accept。 预
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
Linux c==网络编程的理论知识-并发服务器,分布式服务器(34)
9、并发服务器,分布式服务器(结构)什么是分布式系统架构 分布式系统架构简单的说是运行在多个处理器上的软件构架设计。 分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。 网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 架构,又名软件架构,是有关软件整体
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
五种典型IO模型学习笔记
五种典型IO阻塞IO非阻塞IO信号驱动IO异步IO前四种IO模型对比多路转接IO多路转接IO的实现模型select模型: 阻塞IO 阻塞IO: 发起IO调用后,若当前不具备IO条件则阻塞等待。 流程非常简单,一次只能进行一个IO,多个IO的情况下,过程是串行的。进程对cpu利用率不高(因为可能有大量的时间在等待IO就绪) 非阻塞IO 非阻塞IO : 发起IO调用后,若当前不具备IO 条件,则立即...
有代表性的并发服务器端模型
如果服务器不能并发,那么排在后面的客户端将会等待,直到前面的客户端的服务请求被一一处理完毕,而且网络程序中数据通信时间比CPU运算时间占比更大,因此,向多个客户端提供服务是一种有效利用CPU的方式 有代表性的并发服务器端模型:: 1、多进程服务器:通过创建多个进程来同时提供服务 2、多路复用服务器:通过捆绑并统一管理I/O对象提供服务 3、多线程服务器:通过生成与客服端等量的线程提供服
41、Linux 网络编程并发模型总结(select / epoll / fork / pthread)
本文总结了Linux网络编程的四种并发模型:select、epoll、fork和pthread。实验基于Linux(Ubuntu)环境,采用TCP协议通信。select通过文件描述符集合实现I/O多路复用,适合小规模并发;epoll采用事件驱动模型,支持高并发;fork通过创建子进程处理连接,稳定性好但开销大;pthread通过线程处理连接,需处理同步问题。四种模型各有特点:select简单但并发能力低,epoll高性能但仅支持Linux,fork稳定但资源消耗大,pthread灵活但需处理线程安全。实际应
TCP 并发服务器
原型:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);服务端需要连接多个客户端时,服务器需要使用accept等待三次握手连接,同时还需要recv等待接受所有客户端发送的数据,由于accept和recv都是阻塞IO,所以导致程序逻辑无法编写。用一个函数接口监听多个文件描述符是否产生IO事件,只要其中一个产生事件,则不再阻塞,用户可以处理对应的事件。
【项目篇】高并发服务器 - Reactor模型详解
本篇文章主要介绍了Reactor模型:单Reactor单线程,单Reactor多线程,多Reactor多线程,以及基于One Loop Per Thread模型的主从Reactor高并发服务器
【DAY27】Linux 系统 IO 模型与多路复用技术的 TCP 并发服务器实现研究
本文介绍了TCP并发服务器的实现方法,重点分析了Linux系统的4种IO模型。针对传统线程/进程模型资源消耗大的问题,详细阐述了多路复用技术,比较了select、poll和epoll三种实现方式的优缺点:select存在1024文件描述符限制和性能问题;poll使用链表结构但仍有性能缺陷;epoll采用内核事件表,支持水平/边沿触发模式,效率最高。文章还系统讲解了fcntl、select、poll和epoll系列函数的使用方法,包括参数说明和返回值处理,为开发高性能TCP并发服务器提供了技术参考。
TCP并发服务器与I/O多路复用(select)
多线程/多进程模型为每个客户端创建一个独立的线程或进程,在每个线程内部使用阻塞I/O。这样,一个客户端的阻塞不会影响其他客户端。优点:编程简单直观。缺点:资源开销大(每个连接占用一个线程/进程),当连接数巨大时系统难以承受。I/O多路复用模型通过一个系统调用同时监视多个文件描述符,一旦某个描述符就绪(可读/可写/异常),就通知应用程序进行处理。优点:只需一个线程即可管理大量连接,资源消耗小。缺点:编程相对复杂。通过select。
1346



被折叠的 条评论
为什么被折叠?



