如何用socket与多线程实现在服务器端并发处理多客户端的请求

2024-11-08 17:15:43
推荐回答(1个)
回答1:

你至少说一下你用什么语言吧?给你个伪代码,C、C++,java或其他语言的处理过程基本相似:
//创建服务端Socket,指定地址族,连接地址,传输协议
ServerSocket servSocket = new ServerSocket (AF_INET,"127.0.0.1",STREAM);
//指定服务端启用端口
bind(servSocket ,port);
//把服务端socket转化为监听socket
listene(servSocket );
//监听客户端的请求
for(;;) {
ClientSocket cliSocket =new ClientSocket ();
//此处没有连接请求的时候会产生阻塞,会把主线程挂起,有连接请求由操作系统或运行环境通知主线程,继续处理

accept(servSocket,cliSocket);

//执行到此处说明有客户端请求,创建线程处理客户端请求,此处耗费的时间仅仅是各语言的线程创建时间,不处理任何其他工作,具体工作写到线程回调代码中执行。

createNewThreadHandleClientRequet(cliSocket);

//到此循环回去,等待下一次客户端请求
}