java关于socket 多线程的问题

问题描述

java关于socket 多线程的问题

现在是指定一个时间,应用启动就开始定时扫描,隔一分钟扫描一次,到了指定的时间我就需要去Ping两千多台电脑,用多线程处理,每个线程负责50个。我该怎么处理?各位大神们,先说说思路再给我写点简单的代码啊。救急啊,我第一次搞这些东西完全不会额。

解决方案

public class Tdd {

private static ScheduledThreadPoolExecutor es = new ScheduledThreadPoolExecutor(10) ;

public void start() {
    for (int i = 0 ;i <10 ;i++) {
        es.scheduleWithFixedDelay(new Runnable() {

            public void run() {
                // 分配ip
                String[] ips = new String[] { "" };
                // ping 去吧
                System.out.println("11");
            }
        }, 1, 1, TimeUnit.SECONDS);
    }
}

public static void main(String args[]) {
    new Tdd().start();
}

}

你是想用 Runtime.exec("ping xxx") ? 这样吗,小心内存溢出。而且 机器之间 是否通畅 本不应该由 应用程序来 担当啊。

解决方案二:

Java的Socket网络编程以及多线程
Java socket多线程
java socket 多线程网络传输多个文件

解决方案三:

(应用启动就开始定时扫描,隔一分钟扫描一次,到了指定的时间我就需要去Ping两千多台电脑)--》这个部分可以利用spring quartz写一个定时任务;
然后定时任务中的业务逻辑就是处理-->(到了指定的时间我就需要去Ping两千多台电脑,用多线程处理,每个线程负责50个),这个部分可以运用线程池,
自己定义一个线程池,2000多台电脑,每个线程处理50个的话,可以将线程池的大小定义在40个左右,具体的根据实际情况而定,

解决方案四:

先定义一个队列,存放各服务器信息
定义线程池
开启一监控线程,在队列中寻找已到时的记录,如果线程池为空,则开启一个线程用于处理记录,如果线程池满则等待。
用系统自带的ping命令不太合适,最好自已找一个ping的代码,网上有很多,找找就行了。

时间: 2024-09-12 09:11:53

java关于socket 多线程的问题的相关文章

java socket多线程的时间问题

问题描述 java socket多线程的时间问题 各位大神你们好, 我正在用java写一个接收服务器数据并进行统计的程序, 我用的是多线程socket. 该程序要求能够每秒钟接收几千条数据, 数据中包含value和timestamp以及其他字段. 每个数据通过单独的连接发送, 接收之后统计每秒的钟数据的最大值与平均值(指的是数据中所含有的"value"字段的值), 并将其存储到本地. 但是使用多线程时我有个疑问, 就是怎么判断是否到了1秒. 如果使用本地时钟计算肯定会与服务器有出入,

java socket 多线程-请问下面这个程序,在不改变功能的前提下,可以改装成多线程运行吗?*请贴上代码,谢谢*

问题描述 请问下面这个程序,在不改变功能的前提下,可以改装成多线程运行吗?*请贴上代码,谢谢* import java.net.*; // for Socket, ServerSocket, and InetAddress import java.io.*; // for IOException and Input/OutputStream public class Server { private static final int BUFSIZE = 32; // Size of receiv

java的socket的client和server都用多线程,server和client都是java,怎么解决,急急!!

问题描述 java的socket的client和server都用多线程,server和client都是java,怎么解决,急急!! client请求server建立连接 线程1:保持连接,client随时接收server消息并向server返回消息 线程2:向server发请求并接收server返回的消息 解决方案 加我QQ1357197829发给你 解决方案二: Java网络编程之多线程Client-Serverjava 和 C++ Socket通信(java作为服务端server,C++作为

Java的Socket网络编程以及多线程

1.Socket是代表两台机器之间网络连接的对象(java.net.Socket). Socket的建立如下,参数分别是服务器端的IP地址和端口号: Socket socket  =  new Socket("167.5.75.1",5000); 2.客户端(Client)Socket的使用 2.1 从Socket读出数据步骤: // 1.创建Socket连接,告知Server的IP地址以及端口号 Socket socket = new Socket("127.0.0.1&q

scoket tcp ip 报文-Java 的 Socket服务端客户端以tcp/ip协议发送接收报文

问题描述 Java 的 Socket服务端客户端以tcp/ip协议发送接收报文 代码谁有模板,比如给你一个login报文,logout报文!!急急急!!! 解决方案 Android Socket 编程(WIFI 和 ADB) 有了发送数据的功能,再发送文件还需要分包等协议. 解决方案二: 这个不知道是不是你要的答案, 解决方案三: http://blog.csdn.net/u013301192/article/details/46336719 解决方案四: 网页上的1楼回复应该对你有用,祝你好运

java 客户端Socket端口问题

问题描述 java 客户端Socket端口问题 tcp问题,客户端Socket提问,getLocalPort(),连接的是本地的服务端,第一次运行是2880,第二次运行是2881,第三次运行是2882,我想了解客户端的端口是怎么回事,端口是怎么分配的? 解决方案 一个连接占用一个端口,分配端口有自己的算法 像这个就是随机分配不常用的 解决方案二: 端口分配没有什么规定,像偶在程序实现 TCP/UDP 的程序中都是随便选一个不常用的端口. 客户端使用什么端口,一般由服务器决定.因为只有尝试连接服务

java使用Socket类接收和发送数据_java

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据.在本文及后面的数篇文章中将详细讨论Socket类的使用,内容包括Socket类基础.各式各样的连接方式.get和set方法.连接过程中的超时以及关闭网络连接等. 在本文中,我们将讨论使用Socket类的基本步骤和方法.一般网络客户端程序在连接服务程序时要进行以下三步操作. 连接服务器 发送和接收数据 关闭网络连接 一.连接服务器 在

java基于Socket做一个简单下载器_java

本文实例为大家分享了java基于Socket制作下载器的过程,及相关代码,供大家参考,具体内容如下 1.首先要建立一个服务器用来处理信息并给客户端传输文件(电脑)  我是用电脑开了一个WIFI,手机连上后使用scoket传输的  SERVERIP要根据自己实际情况更改.端口也可以随便更改0~65535,尽量选大一点  import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Bu

Java的Socket通讯基础编程完全指南_java

什么是Socket网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接.Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定. 但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的.在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程. Socket通讯的过程Server端Listen(监听)某个端口是否