-
java的socket客户端如何同时并发接收多个服务端发来的信息0
java的socket客户端如何同时并发接收多个服务端发来的信息?
假设有200个传感器,传感器会发送一条String字符串类型的消息,客户端接收。同一时间可能就一个传感器发送消息,也有可能200个传感器同时发过来,是不是如下代码就可以解决了?public clss MyThread extends Thread{ public void run(){ while(true){ a(); } } synchronized private static void a(){ //省略其他 String s = br.readLine(); while(s!=null){ //输出传感器发来的消息 } } }
2013年8月05日 23:13
6个答案 按时间排序 按投票排序
-
public void connection() throws Exception{
Socket client;
ServerSocket server=new ServerSocket(4000);
while(true){
client=server.accept();
br=new BufferedReader(new InputStreamReader(client.getInputStream()));
pw=new PrintWriter(client.getOutputStream());
pw.flush();
}2013年8月06日 16:47
-
http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html,前面的Client/Server程序只能实现Server和一个客户的对话。在实际应用 中,往往是在服务器上运行一个永久的程序,它可以接收来自其他多个客户端的请求,提供相应的服务。为了实现在服务器方给多个客户提供服务的功能,需要对上 面的程序进行改造,利用多线程实现多客户机制。服务器总是在指定的端口上监听是否有客户请求,一旦监听到客户请求,服务器就会启动一个专门的服务线程来响 应该客户的请求,而服务器本身在启动完线程之后马上又进入监听状态,等待下一个客户的到来。
http://www.cnblogs.com/notifier/archive/2010/09/26/1835323.html,这个是用多线程来实现不间断监听socket的。2013年8月06日 09:20
-
看LZ的表述,好像并不是客户端,明明就是服务端嘛。只不过你们项目中可能相对于其他系统来说这个是一个客户端吧?
通过一个ServerSocket接收传感器发来的消息,在接收到一个消息之后如果处理时间较长可以创建一个线程单独处理,用个JDK提供的线程池:Executors.newCachedThreadPool()。2013年8月06日 09:18
-
你这个所谓的“Socket客户端”应该开放一个端口,监听所有“服务器”的数据,
因此这个客户端应该新建一个ServerSocket:
ServerSocket(int port)
创建绑定到特定端口的服务器套接字。
这就变成这个客户端兼有服务器的功能,而所有的“服务器”就必须知道它的端口。
还有种可能就是:客户端一开始连接了多个服务器,有多个Socket对象,每个服务器的数据是通过相对应的Socket的InputStream返回的,然后客户端读取输入流。这时候可以用多线程处理每个连接的数据输入输出,以达到并发的目的。
不知道你是否能理解2013年8月06日 08:31
-
不是socket客户端只能接收同一个端口号的服务端发过来的信息么,楼主是怎样做到一个socket客户端能接收不同服务端发过来的信息呢?如果有N个服务端都监听同一个端口号? 不合理吧
2013年8月06日 00:54
相关推荐
- 接收线程中,使用`InputStreamReader`和`CharBuffer`读取服务端发来的数据。 ##### 2. 服务端代码 - 使用`ServerSocket`监听端口,等待客户端连接。 - 接受客户端连接请求后,为每个客户端创建独立线程处理数据...
一旦连接建立成功,客户端就可以通过`Socket`对象向服务端发送数据,同时也能接收服务端发来的数据。 3. **数据传输**:在客户端和服务端之间进行数据传输时,可以使用`Socket`对象的`getOutputStream()`和`...
- 使用线程池来管理多个并发的心跳包发送和接收任务,提高系统的并行处理能力。 **异常处理** - 对于心跳包发送和接收过程中可能出现的IOException或其他异常,需要进行捕获并妥善处理,例如记录日志、尝试关闭连接...
多线程技术则是提高程序并发性能的关键,当需要同时处理多个客户端连接时,多线程的优势尤为突出。本教程将深入探讨如何利用Java的Socket和多线程技术来构建一个能够支持长连接并实现双向通信的系统。 首先,让我们...
这个"android下客户端与python服务端通信.zip"项目就是一个很好的示例,它演示了如何使用TCP Socket进行Android应用与Python服务器之间的通信。下面我们将深入探讨这个项目涉及的关键知识点。 1. **TCP Socket通信*...
一旦连接建立,服务器就可以通过`Socket`对象向客户端发送数据,同时接收客户端发来的数据。在这个聊天工具中,服务端可能使用多线程处理多个客户端连接,确保可以同时与所有在线用户进行通信,实现群发消息的功能。...
1. **客户端**:客户端通常包括一个用户界面,用户可以在界面上输入消息并发送,同时接收服务器发来的其他用户的消息。客户端通过Socket与服务器建立连接,并通过输入/输出流进行数据交换。 2. **服务器端**:...
总的来说,网络五子棋(Java Socket)是一个很好的实践项目,它不仅涵盖了网络编程的基础知识,还涉及到并发处理、序列化、游戏逻辑等多个方面。对于希望提升Java网络编程技能的开发者来说,这是一个非常有价值的参考...
10. **并发控制**:在服务器端,为了保证数据的一致性和完整性,可能需要使用锁或其他并发控制机制,防止多个线程同时访问同一资源引发的问题。 综上所述,基于C/S模式的JAVA聊天室开发涵盖了JAVA编程、网络通信、...
服务端可能需要为每个客户端连接创建一个独立的线程,以实现并发处理多个用户的聊天请求。客户端也可能需要使用线程来处理用户输入和接收消息,确保用户界面的响应性。 此外,为了实现消息的序列化和反序列化,...
Java Socket 通信技术可以实现多线程通信,服务器端可以通过创建多个线程来处理多个客户端的请求,从而提高服务器的并发处理能力。 Java Socket 通信技术是一种具有面向连接、分布式、体 系结构中立、具有可移植性...
由于服务器可能同时处理多个客户端的连接,因此需要使用多线程来并发地处理这些连接。每个客户端的Socket通信应该在独立的线程中运行,以免阻塞其他客户端的通信。 总的来说,"客户端,服务端简易聊天室"项目涵盖了...
2. **多线程同步问题**:如果服务器端为每个客户端创建单独的线程,那么可能需要使用锁或其他同步机制来确保并发访问资源的正确性。如果同步不当,可能会导致消息交错或丢失。 3. **异常处理不足**:在处理网络通信...
2. **多线程处理机制**:为了处理多个客户端的同时请求,可以使用多线程机制。本示例中采用了Java 5的`ExecutorService`来管理线程池,这比传统创建线程的方法更高效、更易于管理。 3. **线程池配置**:示例中使用了...
在Java编程环境中,实现一个网上聊天系统涉及到网络通信、多线程和用户界面设计等多个方面的知识。这个系统通常包括两个主要部分:发送方(客户端,Client)和接收方(服务器,Server)。以下将详细讲解这些关键知识...
QT5是一个跨平台的C++开发框架,广泛用于创建图形用户界面和其他软件应用程序。在QT5中实现TCP通信,可以让我们构建可靠的网络...实际开发中,还需要考虑异常处理、多线程、并发连接等问题,确保程序的稳定性和健壮性。
同时,客户端也需要不断地从Socket读取服务器发来的消息并显示在界面上。为了提高用户体验,客户端可能还实现了消息的历史记录查看、表情支持、用户状态显示等功能。 四、Java编程在KChat中的应用 KChat项目展示了...
第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例 各种EJB之间的调用源码...
在服务端代码中,每次接收到一个新的客户端连接请求时,都会创建一个新的线程(`MyThread`类)来处理这个连接,这样可以同时处理多个客户端的并发请求,提高系统的响应速度和效率。 #### MyThread类分析 `MyThread...