gpt4 book ai didi

java - 来自不同电脑的不同客户端使用java中的ip与服务器通信

转载 作者:行者123 更新时间:2023-12-02 00:19:32 31 4
gpt4 key购买 nike

我正在为我的聊天应用程序使用java.nio包。但是,它只能连接本地主机中的不同客户端。如何连接来自不同 IP 地址的多个客户端?

目前我正在使用以下代码连接到我的客户端:

InetAddress.getByName("10.10.10.172");

我希望能够从 IP 地址为 10.10.10.123 的客户端向 IP 地址为 10.10.10.124 的服务器发送消息。

谢谢!

最佳答案

我想这和你用单台电脑做的一样......

开始之前还有一件事.. 10.10.10.777 和 10.10.10.888 是无效 IP

IPv4 采用点分十进制格式,范围为 0-255

0 - 网络地址255 - 广播地址

0 和 255 不用于向电脑提供 IP...使用 1 - 254。

并且尝试使用1024以上的端口,这些端口被称为众所周知的端口,用于运行各种服务,如 SMTP、FTP、HTTP、TELNET 等......

希望被记住......

  1. 关闭防火墙,或者为要运行服务器的端口在防火墙中的规则中添加异常(exception)

  2. 在服务器端创建单独的线程来处理多个客户端..

例如:

The Server side code example:


public class ServerTest {

ServerSocket s;

public void go() {

try {
s = new ServerSocket(44457);

while (true) {

Socket incoming = s.accept();
Thread t = new Thread(new MyCon(incoming));
t.start();
}
} catch (IOException e) {

e.printStackTrace();
}

}

class MyCon implements Runnable {

Socket incoming;

public MyCon(Socket incoming) {

this.incoming = incoming;
}

@Override
public void run() {

try {
PrintWriter pw = new PrintWriter(incoming.getOutputStream(),
true);
InputStreamReader isr = new InputStreamReader(
incoming.getInputStream());
BufferedReader br = new BufferedReader(isr);
String inp = null;

boolean isDone = true;

System.out.println("TYPE : BYE");
System.out.println();
while (isDone && ((inp = br.readLine()) != null)) {

System.out.println(inp);
if (inp.trim().equals("BYE")) {
System.out
.println("THANKS FOR CONNECTING...Bye for now");
isDone = false;
s.close();
}

}
} catch (IOException e) {
// TODO Auto-generated catch block
try {
s.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}

}

}

public static void main(String[] args) {

new ServerTest().go();

}

}

关于java - 来自不同电脑的不同客户端使用java中的ip与服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287548/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com