0 0

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个答案 按时间排序 按投票排序

0 0

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
0 0

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
0 0

看LZ的表述,好像并不是客户端,明明就是服务端嘛。只不过你们项目中可能相对于其他系统来说这个是一个客户端吧?

通过一个ServerSocket接收传感器发来的消息,在接收到一个消息之后如果处理时间较长可以创建一个线程单独处理,用个JDK提供的线程池:Executors.newCachedThreadPool()。

2013年8月06日 09:18
0 0

你这个所谓的“Socket客户端”应该开放一个端口,监听所有“服务器”的数据,
因此这个客户端应该新建一个ServerSocket:

ServerSocket(int port)
          创建绑定到特定端口的服务器套接字。

这就变成这个客户端兼有服务器的功能,而所有的“服务器”就必须知道它的端口。


还有种可能就是:客户端一开始连接了多个服务器,有多个Socket对象,每个服务器的数据是通过相对应的Socket的InputStream返回的,然后客户端读取输入流。这时候可以用多线程处理每个连接的数据输入输出,以达到并发的目的。

不知道你是否能理解

2013年8月06日 08:31
0 0

UDP吧你用的?

2013年8月06日 03:27
0 0

不是socket客户端只能接收同一个端口号的服务端发过来的信息么,楼主是怎样做到一个socket客户端能接收不同服务端发过来的信息呢?如果有N个服务端都监听同一个端口号? 不合理吧

2013年8月06日 00:54

相关推荐

    java源码包---java 源码 大量 实例

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    java源码包4

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    java源码包3

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    java源码包2

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    JAVA上百实例源码以及开源项目

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    JAVA上百实例源码以及开源项目源代码

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式 //给客户发一个感谢...

    bl-api-cloud,可扩展轻云服务端框架-易语言

    应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整 HP-Socket 的各项性能参数(如:工作线程的数量、缓存池的大小、发送模式和接收模式等),优化资源配置,在满足应用需求的同时不必过度浪费资源...

Global site tag (gtag.js) - Google Analytics