gpt4 book ai didi

java - 如何使用 ip 地址和端口号连接到服务器套接字? (客户端与服务器在不同的机器上运行)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:41 25 4
gpt4 key购买 nike

客户端程序

public class client implements Runnable {

protected static String server_IP = "141.117.57.42";
private static final int server_Port = 5555 ;
protected static String client_IP ;


public static void main(String[] args) throws IOException{
final String host = "localhost";
int init = 0 ;

try {
InetAddress iAddress = InetAddress.getLocalHost();
client_IP = iAddress.getHostAddress();
System.out.println("Current IP address : " +client_IP);
} catch (UnknownHostException e) {
}

try {System.out.println("hello1");
Socket socket = new Socket(server_IP,server_Port);
System.out.println("hello3");
init = initialize(socket);

}catch (SocketException e) {
System.out.println("Error: Unable to connect to server port ");
}


if (init == 0 ){
System.out.println("error: Failed to initialize ");
System.exit(0);

}
//Thread init_Thread = new Thread();
}
private static int initialize(Socket socket ) throws IOException{
System.out.println("hello");
int rt_value = 0 ;

OutputStream os = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(os, true);

System.out.println("server: " + br.readLine());
pw.println("192.343.34.321");
// BufferedReader userInputBR = new BufferedReader(new InputStreamReader(System.in));
//String userInput = userInputBR.readLine();

//out.println(userInput);

socket.close();
return rt_value = 1 ;



}
public void run(){

}
}

服务器端程序

public class server {

protected static String server_IP ;

public static void main(String[] args) throws IOException {


int server_Port = 5555 ;



try {
InetAddress iAddress = InetAddress.getLocalHost();
server_IP = iAddress.getHostAddress();
System.out.println("Server IP address : " +server_IP);
} catch (UnknownHostException e) {
}

ServerSocket serverSocket = new ServerSocket(server_Port);


while (true) {
Socket socket = serverSocket.accept();

OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
pw.println("Connection confirmed ");
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();

pw.println("your ip address is " + str);

pw.close();
//socket.close();

//System.out.println("Just said hello to:" + str);
}

如何使用 ip 地址和端口号连接到服务器套接字(客户端运行在与服务器不同的机器上)。

当我将客户端中的 server_IP 更改为“本地主机”时,它运行良好。

最佳答案

要连接您使用的代码:

Socket socket = new Socket(server_IP,server_Port);

所以你可以使用:

Socket socket = new Socket("192.168.1.4", 5555);

看起来你的代码中有这个,所以我不确定你遇到了什么问题。

不要忘记,如果路由器位于本地网络之外,则必须将路由器设置为转发端口。

http://www.wikihow.com/Set-Up-Port-Forwarding-on-a-Router

不要忘记,如果您正在运行防火墙,这也会干扰连接。

关于java - 如何使用 ip 地址和端口号连接到服务器套接字? (客户端与服务器在不同的机器上运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003907/

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