public class MultiThreadServer {
private static int port = new GetConfigurationInfo().port;
private ServerSocket serverSocket;
private ExecutorService executorService; //线程池
private final int POOL_SIZE = 10; //单个CPU线程池大小
public MultiThreadServer(){
try {
serverSocket = new ServerSocket(port);
//Runtime的availableProcessor()返回当前系统的CPU个数
executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
System.out.println("服务器启动");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void service(){
while(true){
Socket socket = null;
try {
socket = serverSocket.accept();
executorService.execute(new Handler(socket));//在未来的某个时间执行给定命令
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MultiThreadServer multi = new MultiThreadServer();
multi.service();
}
}
class Handler implements Runnable{
private Socket socket;
public Handler(Socket socket){
this.socket = socket;
}
public void run(){
//自己的处理过程
}
}
分享到:
相关推荐
1、运用多线程和Socket技术实现Socket Server端侦听多个客户端请求; 2、实现服务器端循环处理客户端不同请求从而实现不同测试要求,并向客户端循环发送数据; 3、实现客户端向服务器端发送不同测试命令,并接收...
在本文中,我们将深入探讨如何使用Visual Studio 2017和C++来实现TCP套接字的多线程通信。TCP(传输控制协议)是一种面向连接、可靠的、基于字节流的通信协议,广泛应用于互联网上的各种服务。多线程技术则允许我们...
在实际的多线程并发通信实现中,服务器端需要维护一个线程池,当有新的连接请求时,从线程池中获取一个空闲线程处理请求,处理完成后线程返回线程池。这种方式提高了系统的并发性能,同时也保证了资源的有效利用。 ...
2.通过在服务器端维护一张转发表来实现各个客户端之间的通信,比如客户端A要给客户端B发送消息,首先客户端A把消息内容和客户端B的信息发给服务器,服务器在转发表中找到与客户端B建立的Socket,然后将消息内容转发...
本项目“多线程实现基于TCP的Socket通信”聚焦于在Windows环境下,如何利用C++编程语言通过多线程技术来实现高效、稳定的网络连接。下面将详细阐述涉及的知识点。 1. **TCP协议**:TCP是一种面向连接的、可靠的、...
"VC实现多线程socket通信"这个主题聚焦于如何在Microsoft Visual C++(VC)环境下利用多线程技术进行socket编程,以实现高效且并发的网络通信。 Socket是网络编程中的一个重要概念,它提供了一种进程间通信(IPC)...
总的来说,基于TCP/IP的Socket多线程通信是实现高并发、高效网络服务的关键技术,它结合了TCP的可靠性与多线程的并发处理能力,是构建大规模网络应用的基础。理解和掌握这一技术,对于提升网络程序的设计和开发能力...
在Linux下基于socket多线程并发通信的实现中,服务器端和客户端都是使用多线程技术来处理客户的请求。在服务器端,一旦出现客户发出的请求,服务器可以开启一个子线程来接受、处理客户的相关请求,从而获取来自客户...
标题提到的"SOCKET实现多线程TCP连接源码"是一个典型的网络编程示例,它演示了如何通过Socket接口处理多个并发客户端连接,并使用多线程来保持与每个客户端的独立通信。 首先,TCP(传输控制协议)是一种面向连接的...
基于SOCKET和多线程的应用程序间通信技术,不仅可以实现跨平台的数据通信,还能在保证数据准确性和完整性的同时,提高系统的响应速度和处理能力。通过对多线程的合理利用,可以有效地分配系统资源,优化数据处理流程...
Socket多线程通信是网络编程中的重要组成部分,它允许服务器端和客户端进行高效的数据交互。在实际应用中,如在线聊天、文件传输等场景,往往需要用到多线程来提高并发处理能力,使得服务端可以同时处理多个客户端的...
在这个例子中,"servsock"可能是一个服务器端Socket的实现,它负责创建监听Socket,设置监听端口,并在有新的连接请求时,接受连接并为每个连接创建一个新的线程来处理客户端的数据请求。服务器端通常需要处理多个...
C#.net同步异步SOCKET通讯和多线程总结是指在C#.net环境下实现的同步异步套接字通信和多线程编程的总结。套接字(Socket)是tcp/ip网络协议接口,内部定义了许多的函数和例程,可以看成是网络通信的一个端点。在网络...
Socket多线程通信是网络编程中的一个重要概念,它结合了Socket接口与多线程技术,以提高服务端处理客户端请求的效率。C/S(Client/Server)模型是网络通信的基本架构,其中C代表客户端,S代表服务器端。在这个模型中...
在这个"一个SOCKET多线程通信例程"中,我们将深入探讨如何在C++环境下,利用Visual C++ 6.0(VC6.0)开发工具,实现基于Socket的多线程通信。这个例子可能包含了两个关键文件:VCServer和VCClient,分别代表服务器端...
在这个"socket多线程例程非阻塞模式"的示例中,我们将深入探讨如何在Windows平台上实现多线程的socket通信,并了解非阻塞模式的工作原理。 首先,让我们来理解Socket的基本概念。Socket是进程间通信(IPC)的一种...
Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口来实现,而 Socket 编程则...
本项目涵盖了单线程和多线程两种方式的Socket通信实现,帮助开发者理解这两种模式的差异和应用场景。 首先,我们来详细探讨单线程Socket通信。在单线程模型中,服务器端只有一个线程处理所有客户端的连接请求。当一...
以下是关于Android与PC机Socket多线程通信的关键知识点: 1. **Socket基础**:Socket是网络通信中的一个概念,它代表了两台机器间的一个连接端点,允许数据在网络中传输。在Java中,Socket类和ServerSocket类提供了...
本项目标题为“Qt Socket 多线程代码实现”,是一个适合初学者的示例,它展示了如何使用QtcpSocket在多线程环境中构建一个服务器。下面将详细介绍相关知识点。 首先,我们来理解什么是Socket。Socket是一种在不同...