【网络编程小结(三)】利用多进程与多线程
在第一节的例子中,服务器是一个时间获取程序,只要一次write调用就能立刻完成客户端的任务,但是我们要想的是,服务端不一定每次都会这么快的完成任务,所以,要想办法加快服务端的处理速度。 首先可以想到的是并行处理,c++有两种方式,一个是多进程,一个是多线程。下面描述这两种办法。 一、压力测试 我们的客户端应当有能力判断服务端处理的快慢,所以我们要写一个压力测试函数: void request_to_server(int id,const char* ip,const uint16_t port){ int sockfd=socket(AF_INET,SOCK_STREAM,0); const char *id_str=std::to_string(id).c_str(); sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family=AF_INET; addr.sin_port=htons(port); inet_pton(AF_INET,ip,&addr.sin_addr); connect(sockfd,(const sockaddr*)&addr,sizeof(addr)); const int buffersize=1024; char buf[buffersize]; write(sockfd,id_str