public void setupServer(String ipAddress, int port) { try { InetAddress addr = InetAddress.getByName("10.28.202.79"); ServerSocket ss = new ServerSocket(port, 50, addr); System.out.println("开始服务"); while (true) { Socket sc = ss.accept(); System.out.println("已连接 " + sc.getRemoteSocketAddress()); // 等待从客户端传过来的消息 // 调用处理连接来处理连接 communicationProcess(sc); } } catch (Exception e) { e.printStackTrace(); } }
时间: 2024-03-30 22:38:22 浏览: 109
这是一个Java程序的方法,它用于设置一个服务器,接受来自客户端的连接。参数ipAddress表示服务器的IP地址,port表示监听的端口号。在方法中,首先通过InetAddress.getByName()方法获取服务器的IP地址,然后创建一个ServerSocket对象,指定端口号和最大连接数,开始监听客户端的连接。每当有客户端连接时,就会创建一个Socket对象,并调用communicationProcess()方法来处理连接。如果发生异常,就会打印异常信息。
相关问题
public void setupServer( int port) { try { ServerSocket ss = new ServerSocket(port); System.out.println("开始服务"); while (true) { Socket sc = ss.accept(); System.out.println("已连接 " + sc.getRemoteSocketAddress()); // 等待从客户端传过来的消息 // 调用处理连接来处理连接 communicationProcess(sc); } } catch (Exception e) { e.printStackTrace(); } }改为在tedingIP地址通信
若要将 `setupServer` 函数改为在特定 IP 地址上进行通信,可以在 `ServerSocket` 的构造函数中指定 IP 地址,如下所示:
```
public void setupServer(String ipAddress, int port) {
try {
InetAddress addr = InetAddress.getByName(ipAddress);
ServerSocket ss = new ServerSocket(port, 50, addr);
System.out.println("开始服务");
while (true) {
Socket sc = ss.accept();
System.out.println("已连接 " + sc.getRemoteSocketAddress());
// 等待从客户端传过来的消息
// 调用处理连接来处理连接
communicationProcess(sc);
}
} catch (Exception e) {
e.printStackTrace();
}
}
```
其中 `ipAddress` 是要绑定的 IP 地址,`port` 是要监听的端口号。`50` 是指定连接请求队列的长度,可以根据实际情况进行调整。
实现利用InetAddress.getByName()按计算机名称获得实验室局域网中所有开机主机名称和IP地址。import java.net.InetAddress; import java.net.UnknownHostException; public class lab1 { public static void main(String[] args) { try { // 获取本机的InetAddress实例 InetAddress localhost = InetAddress.getLocalHost(); // 获取本地网络地址前缀 byte[] address = localhost.getAddress(); String prefix = ""; for (int i = 0; i < address.length - 1; i++) { prefix += (address[i] & 0xff) + "."; } // 遍历局域网中所有可能的IP地址并获取主机名和IP地址 for (int i = 1; i <= 255; i++) { String host = prefix + i; try { InetAddress inetAddress = InetAddress.getByName(host); String hostName = inetAddress.getHostName(); String hostAddress = inetAddress.getHostAddress(); System.out.println("HostName: " + hostName + ", hostAddress: " + hostAddress); } catch (UnknownHostException e) { } } } catch (UnknownHostException e) { e.printStackTrace(); } } }分析该代码
== 0) ? prefix + "255." : prefix + address[i] + "."; } // 遍历局域网中所有可能的IP地址 for (int i = 1; i < 255; i ) { String host = prefix + i; // 通过名称获取InetAddress实例 InetAddress inetAddress = InetAddress.getByName(host); // 判断是否可达 if (inetAddress.isReachable(5000)) { System.out.println(inetAddress.getHostName() + " : " + inetAddress.getHostAddress()); } } } catch (UnknownHostException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
阅读全文