【发布时间】:2017-05-18 11:29:01
【问题描述】:
客户
try {
Socket sock = new Socket("localhost", Integer.parseInt(args[0]));
System.out.println(sock.getLocalAddress());
System.out.println(sock.getLocalPort());
ObjectInputStream ois = new ObjectInputStream(sock.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
oos.writeInt(55);
ois.readInt();
} catch (Exception e) {e.printStackTrace();}
服务器
try {
ServerSocket ss = new ServerSocket(1234);
Socket sock = ss.accept();
System.out.println(sock.getLocalAddress());
System.out.println(sock.getLocalPort());
ObjectInputStream ois = new ObjectInputStream(sock.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(sock.getOutputStream());
System.out.println(ois.readInt());
oos.close();
} catch (Exception e) {e.printStackTrace();}
我按顺序运行服务器,然后运行客户端。 我将 1234 作为命令行参数传递给客户端。也就是说,我是这样执行线程的
java server
java client 1234
这样做会将这些打印到控制台
// server
/127.0.0.1
1224
// client
/127.0.0.1
50261
从这一点开始,两个线程都不会继续前进。 这是怎么回事?
【问题讨论】: