`
wang_2011_ying
  • 浏览: 150804 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

服务器端Socket实现多线程通信

 
阅读更多
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(){
		//自己的处理过程	
		
	}
}
分享到:
评论

相关推荐

    C Socket通信多线程数据双向收发实例VS2010(全部源码)

    1、运用多线程和Socket技术实现Socket Server端侦听多个客户端请求; 2、实现服务器端循环处理客户端不同请求从而实现不同测试要求,并向客户端循环发送数据; 3、实现客户端向服务器端发送不同测试命令,并接收...

    VS2017实现Tcp socket多线程通信(C++)

    在本文中,我们将深入探讨如何使用Visual Studio 2017和C++来实现TCP套接字的多线程通信。TCP(传输控制协议)是一种面向连接、可靠的、基于字节流的通信协议,广泛应用于互联网上的各种服务。多线程技术则允许我们...

    Linux下基于socket多线程并发通信的实现

    在实际的多线程并发通信实现中,服务器端需要维护一个线程池,当有新的连接请求时,从线程池中获取一个空闲线程处理请求,处理完成后线程返回线程池。这种方式提高了系统的并发性能,同时也保证了资源的有效利用。 ...

    MFC实现多个客户端通过服务器进行通信的Socket的多线程编程

    2.通过在服务器端维护一张转发表来实现各个客户端之间的通信,比如客户端A要给客户端B发送消息,首先客户端A把消息内容和客户端B的信息发给服务器,服务器在转发表中找到与客户端B建立的Socket,然后将消息内容转发...

    多线程实现基于TCP的Socket通信.rar

    本项目“多线程实现基于TCP的Socket通信”聚焦于在Windows环境下,如何利用C++编程语言通过多线程技术来实现高效、稳定的网络连接。下面将详细阐述涉及的知识点。 1. **TCP协议**:TCP是一种面向连接的、可靠的、...

    VC实现多线程socket通信

    "VC实现多线程socket通信"这个主题聚焦于如何在Microsoft Visual C++(VC)环境下利用多线程技术进行socket编程,以实现高效且并发的网络通信。 Socket是网络编程中的一个重要概念,它提供了一种进程间通信(IPC)...

    基于TCP/IP的Socket多线程通信(服务器和客户端)

    总的来说,基于TCP/IP的Socket多线程通信是实现高并发、高效网络服务的关键技术,它结合了TCP的可靠性与多线程的并发处理能力,是构建大规模网络应用的基础。理解和掌握这一技术,对于提升网络程序的设计和开发能力...

    Linux下基于socket多线程并发通信的实现.pdf

    在Linux下基于socket多线程并发通信的实现中,服务器端和客户端都是使用多线程技术来处理客户的请求。在服务器端,一旦出现客户发出的请求,服务器可以开启一个子线程来接受、处理客户的相关请求,从而获取来自客户...

    SOCKET实现多线程TCP连接源码

    标题提到的"SOCKET实现多线程TCP连接源码"是一个典型的网络编程示例,它演示了如何通过Socket接口处理多个并发客户端连接,并使用多线程来保持与每个客户端的独立通信。 首先,TCP(传输控制协议)是一种面向连接的...

    基于SOCKET和多线程的应用程序间通信技术的研究.pdf

    基于SOCKET和多线程的应用程序间通信技术,不仅可以实现跨平台的数据通信,还能在保证数据准确性和完整性的同时,提高系统的响应速度和处理能力。通过对多线程的合理利用,可以有效地分配系统资源,优化数据处理流程...

    socket多线程通信源码

    Socket多线程通信是网络编程中的重要组成部分,它允许服务器端和客户端进行高效的数据交互。在实际应用中,如在线聊天、文件传输等场景,往往需要用到多线程来提高并发处理能力,使得服务端可以同时处理多个客户端的...

    SOCKET+多线程例子

    在这个例子中,"servsock"可能是一个服务器端Socket的实现,它负责创建监听Socket,设置监听端口,并在有新的连接请求时,接受连接并为每个连接创建一个新的线程来处理客户端的数据请求。服务器端通常需要处理多个...

    C#.net同步异步SOCKET通讯和多线程总结

    C#.net同步异步SOCKET通讯和多线程总结是指在C#.net环境下实现的同步异步套接字通信和多线程编程的总结。套接字(Socket)是tcp/ip网络协议接口,内部定义了许多的函数和例程,可以看成是网络通信的一个端点。在网络...

    socket多线程通信

    Socket多线程通信是网络编程中的一个重要概念,它结合了Socket接口与多线程技术,以提高服务端处理客户端请求的效率。C/S(Client/Server)模型是网络通信的基本架构,其中C代表客户端,S代表服务器端。在这个模型中...

    一个SOCKET多线程通信例程

    在这个"一个SOCKET多线程通信例程"中,我们将深入探讨如何在C++环境下,利用Visual C++ 6.0(VC6.0)开发工具,实现基于Socket的多线程通信。这个例子可能包含了两个关键文件:VCServer和VCClient,分别代表服务器端...

    socket 多线程 例程 非阻塞模式

    在这个"socket多线程例程非阻塞模式"的示例中,我们将深入探讨如何在Windows平台上实现多线程的socket通信,并了解非阻塞模式的工作原理。 首先,让我们来理解Socket的基本概念。Socket是进程间通信(IPC)的一种...

    Java多线程-Socket编程

    Java 多线程-Socket 编程是指在 Java 语言中使用多线程技术来实现网络编程,特别是使用 Socket 编程来实现客户端和服务器端的通信。在 Java 中,多线程可以使用 Thread 类和 Runnable 接口来实现,而 Socket 编程则...

    单线程与多线程socket通信

    本项目涵盖了单线程和多线程两种方式的Socket通信实现,帮助开发者理解这两种模式的差异和应用场景。 首先,我们来详细探讨单线程Socket通信。在单线程模型中,服务器端只有一个线程处理所有客户端的连接请求。当一...

    Android与PC机 Socket 多线程通信经典案例,移动开发必备代码

    以下是关于Android与PC机Socket多线程通信的关键知识点: 1. **Socket基础**:Socket是网络通信中的一个概念,它代表了两台机器间的一个连接端点,允许数据在网络中传输。在Java中,Socket类和ServerSocket类提供了...

    Qt Socket 多线程代码实现

    本项目标题为“Qt Socket 多线程代码实现”,是一个适合初学者的示例,它展示了如何使用QtcpSocket在多线程环境中构建一个服务器。下面将详细介绍相关知识点。 首先,我们来理解什么是Socket。Socket是一种在不同...

Global site tag (gtag.js) - Google Analytics