Я пытаюсь подключить клиент Java с сервером в одной локальной сети, клиент и сервер находятся на двух разных компьютерах.
Вот мой код клиента,
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);
}
}
}
Серверный ПК имеет 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, а Сервер - на Windows.
Когда я запускал Клиент и Сервер на ПК с Windows с помощью localhost, это работало без проблем.
Некоторая подсказка означала бы большую помощь. Спасибо.