CC++网络编程6——实现基于UDP的服务器端客户端

CC++网络编程6——实现基于UDP的服务器端客户端,第1张

概述  通过前面几节的内容,我们已经可以实现基本的C/S结构的程序了,但是当多个客户端同时向服务器端请求服务时,服务器端只能按顺序一个一个的服务,这种情况下,客户端的用户是无法忍受的。所以虚实现并发的服务器端。 并发服务器端的实现方法:   1:多进程服务器端:通过创建多个进程提供服务。   2:多路复用服务器:用过捆绑并统一管理I/O对象提供服务。   3:多线程服务器:通过生成与客户端等量的线程提

  通过前面几节的内容,我们已经可以实现基本的C/S结构的程序了,但是当多个客户端同时向服务器端请求服务时,服务器端只能按顺序一个一个的服务,这种情况下,客户端的用户是无法忍受的。所以虚实现并发的服务器端。

并发服务器端的实现方法:

  1:多进程服务器端:通过创建多个进程提供服务。

  2:多路复用服务器:用过捆绑并统一管理I/O对象提供服务。

  3:多线程服务器:通过生成与客户端等量的线程提供服务。

 

多进程服务器端:

  进程:可执行程序的一次执行过程。

  在linux下可通过fork()函数创建一个进程。

#include <unistd.h>pID_t fork(voID)// 成功返回时父进程返回子进程的ID,子进程返回0,失败时返回-1

  通过fork()函数创建进程以后,父进程和子进程拥有完全独立的内存空间。举例:

#include <iostream>#include <unistd.h>using namespace std;int g_count = 10;int main(){    int l_count = 20;    g_count++;    l_count++;    pID_t pID = fork();    if (pID < 0) {        cout << "fork() Failed" << endl;        return 0;    }    if (pID == 0) {        g_count += 5;        l_count += 5;    } else {        g_count -= 5;        l_count -= 5;    }    if (pID == 0) {        cout << "child: " << g_count <<" " << l_count << endl;    } else {        cout << "parent: " << g_count <<" " << l_count << endl;    }    return 0;}

总结

以上是内存溢出为你收集整理的C/C++网络编程6——实现基于UDP的服务器端/客户端全部内容,希望文章能够帮你解决C/C++网络编程6——实现基于UDP的服务器端/客户端所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1210854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存