Java 客户端与服务器建立连接后,为什么不显示JOptionPane?
启动服务器和客户端后,不会调用客户端类中的processInput方法。我试图使用调试器来查看是否可以找出导致问题的原因,但我无法找到。我在使用调试器时观察到,(is),ObjectInputStream实例没有被初始化。无论何时我在调试程序的这一行,我都无法继续调试过程 这是客户端的代码Java 客户端与服务器建立连接后,为什么不显示JOptionPane?,java,sockets,Java,Sockets,启动服务器和客户端后,不会调用客户端类中的processInput方法。我试图使用调试器来查看是否可以找出导致问题的原因,但我无法找到。我在使用调试器时观察到,(is),ObjectInputStream实例没有被初始化。无论何时我在调试程序的这一行,我都无法继续调试过程 这是客户端的代码 ObjectInputStream is; ObjectOutputStream os; Socket socket; public ClientEmp(){ try { socke
ObjectInputStream is;
ObjectOutputStream os;
Socket socket;
public ClientEmp(){
try {
socket = new Socket(InetAddress.getLocalHost(), 4200);
is = new ObjectInputStream(socket.getInputStream());
os = new ObjectOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void processInput(){
String str = JOptionPane.showInputDialog("Enter your name: ");
try {
os.writeObject(str);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("Hello World!");
EventQueue.invokeLater(new Runnable() {
public void run() {
ClientEmp cli = new ClientEmp();
cli.processInput();
}
});
}
这是服务器的代码
private Socket socket;
private ServerSocket serverSocket;
private ObjectInputStream is;
private ObjectOutputStream os;
public ServerEmp() {
try {
serverSocket = new ServerSocket(4200);
System.out.println("Server Started");
while (true) {
socket = serverSocket.accept();
getStream();
System.out.println("Connection made to the server");
try {
String str = (String) is.readObject();
System.out.println(str);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void getStream(){
try {
is = new ObjectInputStream(socket.getInputStream());
os = new ObjectOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ServerEmp();
}
});
}
我解决了这个问题。问题在于在客户端和服务器上初始化ObjectOutputStream和ObjectInputStream实例的顺序