当前位置: 首页 > news >正文

做隐私的网站百度商桥怎么和网站

做隐私的网站,百度商桥怎么和网站,o2o网站建设方案,网站建设 小程序制作我们上一节课写的tcp我们发现只有第一个与之连接的人才能收发信息。他又很多的不足 高性能网络服务器 通过fork实现高性能网络服务器 我们通过fork进行改装之后就可以成百上千的用户进行连接访问#xff0c;对于每一个用户来说我们都fork一个子进程。让后让每一个子进程都是…我们上一节课写的tcp我们发现只有第一个与之连接的人才能收发信息。他又很多的不足 高性能网络服务器 通过fork实现高性能网络服务器 我们通过fork进行改装之后就可以成百上千的用户进行连接访问对于每一个用户来说我们都fork一个子进程。让后让每一个子进程都是与服务器端的一个对应关系。这样并行的进行处理。但是还是有很多的不足之处。通过select实现高性能网络服务器 通过IO复用的方式来实现多个客户端与服务器端进行通信。通过epoll实现高性能网络服务器 也是通过IO复用的方式来实现多个客户端与服务器端进行通信但是他比select更加高效。它通过底层内核级事件更高校利用I/O事件处理库来实现高性能网络服务器 以fork方式实现高性能网络服务器 一个主进程进行监听连接。每收到一个连接就创一个子进程多个子进程进行并行连接。然后父进程负责接收连接通过fork创建子进程。 头文件 #include sys/types.h #include unistd.h原型 pid_t fork(void);fork()是一个系统调用函数用于在 Unix-like 操作系统中创建一个新的进程。它会复制当前进程称为父进程并在新的进程称为子进程中继续执行。 fork()函数返回的是一个 pid_t 类型的值pid是进程id如果pid0,说明是子进程如果大于0就是父进程。其含义如下 在父进程中fork() 返回新创建的子进程的进程 IDPID。在子进程中fork() 返回 0。如果创建子进程失败fork() 返回 -1。 fork() 函数在创建子进程时会返回两次这是因为它是一个复制当前进程的系统调用。具体来说fork() 函数会创建一个新的进程子进程并将父进程的所有内容包括代码、数据、堆栈等复制到子进程中。 第一次返回 在父进程中fork() 返回新创建的子进程的进程 IDPID。如果创建子进程失败fork() 返回 -1。 第二次返回 在子进程中fork() 返回 0。通过这两次返回父进程和子进程可以根据不同的返回值采取不同的逻辑分支。 在父进程中可以根据返回的子进程 PID 做一些与子进程相关的操作如记录子进程的 PID、等待子进程的终止等。 在子进程中由于 fork() 返回的是 0可以根据此特性来区分自己是子进程从而执行特定的子进程代码逻辑。 需要注意的是父进程和子进程会继续执行 fork() 调用之后的代码并且它们是在不同的进程上下文中运行的拥有各自独立的内存空间和资源。因此在使用 fork() 创建子进程时通常需要在父子进程中进行不同的处理以避免竞态条件和不必要的资源共享问题。 这个代码还是在服务器端接收客户端的时候fork一个子线程。然后进行通信。 tcp_server_fork.cpp #include stdio.h #include unistd.h #include stdlib.h #include string.h #include sys/socket.h #include netinet/in.h #include iostream//端口 #define PORT 8888 #define MESSAGE_LEN 1024int main(int argc,char* argv[]){int ret-1;int on1;int backlog10;//缓冲区大小int socket_fd,accept_fd;pid_t pid;struct sockaddr_in localaddr,remoteaddr;char in_buff[MESSAGE_LEN]{0,};socket_fdsocket(AF_INET,SOCK_STREAM,0);if(socket_fd-1){std::coutFailed to create socket!std::endl;exit(-1);}retsetsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,on,sizeof(on));if(ret-1){std::coutFailed to set socket options!std::endl;}localaddr.sin_familyAF_INET;//地址族localaddr.sin_porthtons(PORT);//端口号localaddr.sin_addr.s_addrINADDR_ANY;//这个就是0bzero((localaddr.sin_zero), 8);ret bind(socket_fd,(struct sockaddr *)localaddr,sizeof(struct sockaddr));//绑定if(ret-1){//绑定失败std::coutFailed to bind addr!std::endl;exit(-1);}ret listen(socket_fd,backlog);//第二个是缓冲区大小因为同一时间只能处理一个其他都放在缓冲区if(ret-1){std::coutfailed to listen socket!std::endl;exit(-1);}while(1){//等待连接socklen_t addr_lensizeof(struct sockaddr);accept_fd accept(socket_fd,(struct sockaddr *)remoteaddr,addr_len);//每次接收之后我们fork一个子进程。pid是进程id如果pid0,说明是子进程如果大于0就是父进程pid fork();if(pid 0){//连接了while(1){//这个是连接了之后发消息memset(in_buff, 0, sizeof(in_buff));//接收消息ret recv(accept_fd,(void *)in_buff,MESSAGE_LEN,0);if(ret0){break;}std::coutrecv:in_buffstd::endl;//返回消息send(accept_fd,(void*)in_buff,MESSAGE_LEN,0);}}close(accept_fd);}if(pid!0){close(socket_fd);}return 0; } clang -g -o tcp_server_fork tcp_server_fork.cpp ./tcp_server_fork 客户端还是上个文章的客户端。 fork()的优缺点 使用 fork() 函数创建子进程的服务器有以下优点和缺点: 优点 简单易用使用 fork() 函数创建子进程的服务器相对简单不需要使用复杂的多线程或多进程编程模型。通过复制父进程的内存空间子进程可以独立运行处理客户端请求。 高并发处理每个客户端连接都可以创建一个独立的子进程这样服务器能够同时处理多个客户端请求实现高并发性能。 数据共享父进程和子进程共享文件描述符可以轻松共享一些资源和状态信息例如打开的文件、缓冲区等。 可靠性由于每个子进程是独立运行的一个子进程的崩溃或异常不会影响其他子进程或主服务器进程。 缺点 内存开销每个子进程都需要复制父进程的内存空间因此在大规模并发的情况下服务器的内存开销会比较大。 进程切换开销由于每个客户端连接都需要创建子进程因此涉及到进程之间的切换开销包括上下文切换和进程间通信开销这可能对服务器性能产生一定的影响。 可伸缩性由于每个客户端连接都需要创建子进程服务器的可伸缩性可能受到限制。在大规模并发情况下为每个连接创建子进程可能会导致系统资源耗尽。 进程间通信复杂性如果子进程之间需要进行通信或共享数据就需要使用进程间通信IPC机制如管道、共享内存等。这增加了编程的复杂性。     综上所述使用 fork() 函数创建子进程的服务器适用于简单的并发场景和较小规模的应用但在大规模高并发、资源消耗较大或需要更高可伸缩性的情况下可能需要考虑其他并发模型如多线程或事件驱动模型。 参考https://blog.csdn.net/lepaitianshi/article/details/132981657
http://www.hkea.cn/news/14494013/

相关文章:

  • 网站前端包括哪些怎样做网络推广wsyx挣钱
  • 企业做网站都购买域名吗cpa单页网站怎么做
  • 蓝色风格的网站网站搭建服务
  • 网站页面设计如何收费石家庄企业网站制作哪家好
  • 代理备案网站wordpress注册提示
  • 公司网站建设申请书少儿编程加盟培宝未来
  • 国内建设地铁的公司网站淘宝 网站开发 退货
  • 网站做编辑器自己的网站发文章怎么做外链
  • 网站灰色代码商业网站建设定位
  • 怎样优化手机网站建设北京飞雨网站建设公司
  • ddns怎么做网站wordpress主题know
  • 网站建设个人工作室电子商务网站开发参考文献
  • 专业网站设计服务商深圳全网营销方案
  • 网站建设策划解决方案前端工程师是做网站吗
  • 建设网站空间合同电商网站开发开题报告
  • 自建网站平台的页面功能做电影网站用什么cms
  • 游戏公司做网站深圳网站建设公司小江
  • 建立网站需要多少钱费用告诉你做网站需要多少钱
  • 做微信活动是做网站还是做小程序好wordpress下载整站源码
  • 具有价值的网站建设平台天津品牌网站建设好处
  • 直播类型网站开发有哪些好的做网站
  • 电子商务网站设计代做建筑设计师网
  • 怎么做淘客网站推广烟台门户网站
  • 西安长安网站建设制作自建营销型网站模板
  • 河南省建设厅门户网站岳阳网站定制开发设计
  • 网站如何为关键词做外链搭建电商平台 方案
  • 内蒙古网站制作公司在百度上建网站怎么建设
  • 磐安建设局网站郴州网站设计
  • 山东城市建设职业学院教务网站工信部icp备案管理系统
  • 网站开发技术项目百度一下你就知道官网首页