客户端和服务器PC未在LAN内连接

时间:2018-04-29 16:27:12

标签: java sockets server client lan

我试图将Java客户端与服务器连接在同一个局域网中,客户端和服务器位于两台不同的PC中。

这是我的客户代码,

import java.io.*;
import java.net.*;

public class Client{
  public static void main(String[] args) throws Exception{

    String ip = "192.168.0.103";
    int port = 9999;

    Socket s = new Socket(ip,port);

    DataInputStream din = new DataInputStream(s.getInputStream());
    DataOutputStream dout = new DataOutputStream(s.getOutputStream());

    BufferedReader br = new BufferedReader(new 
    InputStreamReader(System.in));

    String msgin = " ";
    String msgout = " ";

    while(!msgin.equals("end")){
      msgout = br.readLine();
      dout.writeUTF(msgout);
      msgin = din.readUTF();
      System.out.println("Mr.Client : "+msgin);
    }

  }
}

服务器PC的IP为192.168.0.103。

这是服务器代码,

import java.io.*;
import java.net.*;

public class Server{
  public static void main(String[] args) throws Exception{

    System.out.println("Server started ... ... ");
    ServerSocket ss = new ServerSocket(9999);

    System.out.println("Waiting for client request ... ... ");
    Socket s = ss.accept();

    DataInputStream din = new DataInputStream(s.getInputStream());
    DataOutputStream dout = new DataOutputStream(s.getOutputStream());

    BufferedReader br = new BufferedReader(new 
    InputStreamReader(System.in));

    String msgin = " ";
    String msgout = " ";

    while(!msgin.equals("end")){
      msgin = din.readUTF();
      System.out.println("Mr.Server : "+msgin);
      msgout = br.readLine();
      dout.writeUTF(msgout);
      dout.flush();
    }

  }
} 

每当我运行这些代码时,服务器显示它正在等待客户端,但在运行客户端后,客户端将被冻结无限时间,保持卡住状态,无输出。

要提到的是,客户端在Ubuntu机器上运行,而Server在Windows上运行。

当我使用localhost在Windows PC中运行客户端和服务器时,它没有任何问题。

一些线索意味着很大的帮助。谢谢。

0 个答案:

没有答案