java编程,获取局域网内服务器端的ip地址 5
建立了个服务器server=newServerSocket();server.setReuseAddress(true);InetSocketAddressaa=newI...
建立了个服务器
server = new ServerSocket();
server.setReuseAddress(true);
InetSocketAddress aa = new InetSocketAddress(port);
server.bind(aa);
假设服务器地址是192.168.1.130,客户端在连接之前进行扫描,怎么知道192.168.1.XXX的port端口有服务器正等待连接呢?
能否在连接前获得服务器的其他相关信息,比如服务器的名称等等。
端口号已知的(10000),不用管端口号 展开
server = new ServerSocket();
server.setReuseAddress(true);
InetSocketAddress aa = new InetSocketAddress(port);
server.bind(aa);
假设服务器地址是192.168.1.130,客户端在连接之前进行扫描,怎么知道192.168.1.XXX的port端口有服务器正等待连接呢?
能否在连接前获得服务器的其他相关信息,比如服务器的名称等等。
端口号已知的(10000),不用管端口号 展开
2个回答
展开全部
socket.connect(new InetSocketAddress(ip, port), timeout)
看有没有抛异常 没异常就是已经连接上了
想获取服务器名称 可以用ARP协议 或者测试连接的时候服务器回应一个名称
package baiduzhidao;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
/**
* 端口号
*/
int port = 10000;
/**
* 连接延时
*/
int timeout = 300;
System.out.println("Scanner Start...");
Socket socket;
/**
* 扫描
*/
for (int i = 1, k = 254; i < k; i++) {
if ((socket = isOnLine("192.168.1." + i, port, timeout)) != null) {
System.out.println("Server:"
+ socket.getInetAddress().getHostAddress()
+ ":" + socket.getPort() + " Is Waiting...");
}
/**
* 关闭连接
*/
if (socket != null && !socket.isClosed()) {
try {
socket.close();
} catch (IOException e) {
socket = null;
}
}
}
System.out.println("Scanner end...");
}
/**
* 测试连接服务器,返回连接成功后的Socket
*
* @param ip
* 服务器Ip
* @param port
* 服务器端口号
* @param timeout
* 连接延时
* @return 返回连接成功后的Socket
*/
private static Socket isOnLine(String ip, int port, int timeout) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(ip, port), timeout);
} catch (IOException e) {
return null;
}
return socket;
}
}
Storm代理
2023-05-30 广告
2023-05-30 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询