当前位置: 首页 > 面试题库 >

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

司空丰
2023-03-14
问题内容

客户程序

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);
        }

当我将客户端中的server_IP更改为“本地主机”时,如何使用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

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



 类似资料:
  • 我使用python中的套接字设置了一个客户机和一个服务器,客户机向服务器发送数据,服务器执行操作,然后向客户机返回一些数据。最初,客户端和服务器将具有相同的端口号(9999)。我目前的问题是,我必须将服务器端口更改为19999,当我试图运行时,它无法工作。客户端能够发送数据,如果它的端口也更改为19999,但它不工作,如果客户端是9999和服务器是19999,这是我需要的。新的网络系统,所以将感谢

  • 问题内容: 我的客户端PC通过以太网上的套接字作为服务器PC连接,如何从服务器端代码中找到该客户端的IP。 服务器在新线程中为每个客户端分配一个套接字。 当我在客户端套接字上执行操作时,我仍然会获得服务器IP地址。(是服务器在当前客户端连接上产生的套接字,并将其传递给新的线程)。 问题答案: 我相信您想改用远程地址:

  • 如何使用套接字将Swift客户端连接到Java服务器?如何在客户端和服务器之间发送不同的数据类型?

  • 问题内容: 在Java中,可以创建套接字服务器和套接字客户端,是否可以运行套接字服务器的实例以及从同一台计算机上的套接字服务器接收数据的套接字/服务器客户端? 例如,套接字服务器在端口60010上运行,套接字客户端在通过套接字连接到该端口的同一台计算机上运行,​​还是我需要一台新计算机并将其添加到网络中?如果它在TCP / IP层上运行时具有唯一的IP地址和端口号。 问题答案: 这是一个简单的可运

  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • Java: 在C#中-它停止在“receiver=listener.accept();”在java(android)中-它停止于“sender_socket=new Socket(serverAddr,SERVERPORT);”这应该是java套接字函数的问题--需要另一个函数连接到C#-server。