前言
本试验是在已实现多进程服务端的基础上(详情可查看我发布的另一个文章),将数据的收发分给交给两个线程完成
一、通信服务端
/*
* 此程序用于测试线程级的tcp服务端并发
* 作者:zhy
* 日期:2021/4/11
*/
#include "_public.h"
CTcpServer TcpServer;
void EXIT(int sig)
{
printf("程序退出,信号值:%d\n",sig);
close(TcpServer.m_listenfd); // 手动关闭,释放资源
pthread_mutex_destroy(&mutex);
exit(0);
}
// 与客户端通信的主线程函数
void *pth_main_send(void *arg);
void *pth_main_recv(void *arg);
int main(int argc,char *argv[])
{
// 忽略全部信号
for (int ii = 0;ii < 50; ii++) signal(ii,SIG_IGN);
signal(SIGTERM,EXIT);
signal(SIGINT ,EXIT);
if (TcpServer.InitServer(5000) == false)
{
printf("服务端初始化失败,程序退出。\n"); return -1; }
while(true)
{
if (TcpServer.Accept() == false)