Java-socket编程
我所阅读和观看的所有关于java套接字编程的教程都涉及一个常见的、基本的单词,即localhost。我玩java服务器客户端程序已经有一段时间了,做了一些实验。但每次,我的计算机既是服务器又是客户机,所以当涉及到其他试图连接到我计算机上托管的服务器的计算机时,我不太明白如何使事情正常工作 以以下基本服务器客户端类为例: 服务器类Java-socket编程,java,multithreading,sockets,Java,Multithreading,Sockets,我所阅读和观看的所有关于java套接字编程的教程都涉及一个常见的、基本的单词,即localhost。我玩java服务器客户端程序已经有一段时间了,做了一些实验。但每次,我的计算机既是服务器又是客户机,所以当涉及到其他试图连接到我计算机上托管的服务器的计算机时,我不太明白如何使事情正常工作 以以下基本服务器客户端类为例: 服务器类 public class TestServerSocket { public static void main(String args[]) throws I
public class TestServerSocket {
public static void main(String args[]) throws IOException {
final int portNumber = 444;
System.out.println("Creating server socket on port " + portNumber);
ServerSocket serverSocket = new ServerSocket(portNumber);
while (true) {
Socket socket = serverSocket.accept();
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//...code...
}
socket.close();
pw.close();
os.close();
br.close();
}
}
客户端类
public class TestClientSocket {
public static void main(String args[]) throws IOException {
final String host = "localhost";
final int portNumber = 444;
System.out.println("Creating socket to '" + host + "' on port " + portNumber);
while (true) {
Socket socket = new Socket(host, portNumber);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader userInputBR = new BufferedReader(new InputStreamReader(System.in));
//...code...
}
socket.close();
out.close();
br.close();
userInputBR.close();
}
}
现在,假设我想在我的计算机上运行TestServerSocket,让我的朋友在他的计算机上运行TestClientSocket。要使该代码正常工作,必须对此代码进行哪些更改?“localhost”本质上是环回IP地址127.0.0.1的别名
为了让您的朋友连接到您的服务器,代码必须将服务器的IP地址替换为“localhost”
重要的是要注意,如果您的朋友不在您的本地网络上,您将不得不使用您的出站IP地址和端口转发路由器上的正确端口。不过,如果您不熟悉这种类型的网络,我不会尝试。如果你不小心,即使你很小心,你也可能会受到无数基于网络的攻击。“localhost”本质上是环回IP地址127.0.0.1的别名
为了让您的朋友连接到您的服务器,代码必须将服务器的IP地址替换为“localhost”
重要的是要注意,如果您的朋友不在您的本地网络上,您将不得不使用您的出站IP地址和端口转发路由器上的正确端口。不过,如果您不熟悉这种类型的网络,我不会尝试。如果你不小心,即使你很小心,你也会受到无数基于网络的攻击。你能给我一些链接作为“如果你的朋友不在你的本地网络”部分的文档吗,或者可能只是为了这个例子再详细说明一下?你能给我一些链接作为“如果你的朋友不在你的本地网络”部分的文档吗“如果你的朋友不在你的本地网络上”部分,或者可能只是为这个例子详细说明一下?应该给一些东西阅读应该给一些东西阅读