我尝试使用Socket连接两台机器。
我将客户端代码放入机器A:
import java.io.*;
import java.net.*;
public class MyClient {
public static void main(String[] args) {
try {
Socket s = new Socket("IP ADDRESS",5555);
// Socket s = new Socket("localhost",6669);
DataOutputStream dout = new DataOutputStream(s.getOutputStream());
dout.writeUTF("Hello Server");
dout.flush();
dout.close();
s.close();
} catch(Exception e) {
System.out.println(e);
}
}
}
在Machine B中运行服务器代码
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(5555);
Socket s = ss.accept(); //establishes connection
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = (String) dis.readUTF();
System.out.println("message= " + str);
ss.close();
} catch(Exception e) {
System.out.println(e);
}
}
}
两者都在同一网络的机器中
但它没有运行,CMD也没有错误。
答案 0 :(得分:0)
首先,当我使用" localhost"编译代码时作为主机名,并在同一台机器上运行客户端和服务器应用程序...它的工作原理。服务器接收消息并打印出来。
由此我得出结论,代码是正确的(足够),真正的问题与你的网络有关; e.g。
然而,这些都不是编程问题。