这两个程序执行步骤是怎么样的?
import java.io.*;
import java.net.*;
import java.util.*;public class Server1 {
public static void main(String[] args) throws IOException {
Calendar c = Calendar.getInstance();
ServerSocket ss = new ServerSocket(30000);
// 采用循环方式不断接受来自客户端的请求
while (true) {
Socket s = ss.accept();
System.out.println("服务器秒1 " + c.get(Calendar.SECOND));
PrintStream p = new PrintStream(s.getOutputStream());
p.println("服务器祝你生日快乐!");
System.out.println("服务器秒2 " + c.get(Calendar.SECOND));
p.close();
// ss.close();
}
}
}
import java.net.*;
import java.util.Calendar;
import java.io.*;
import java.util.*;
public class Client1 { public static void main(String[] args) throws IOException {
Calendar c=Calendar.getInstance();
Socket socket = new Socket("127.0.0.1", 30000);
System.out.println("客户端秒 "+c.get(Calendar.SECOND));
System.out.println("客户端:"+System.currentTimeMillis());
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String s = br.readLine();
System.out.println("来自服务器的数据:" + s);
br.close();
socket.close();
}}socket服务器

解决方案 »

  1.   

    1,首先启动服务器
    2,创建ServerSocket对象3,当服务器代码执行到Socket s = ss.accept();因为accept()是阻塞式的,会一直等待客户端连接。
        为什么要加入死循环,如果不加入死循环。只能接受一次客户端的连接。
    4,如果有客户端连接,会往客户端发送信息。
    5,客户端Socket socket = new Socket("127.0.0.1", 30000);是与服务器建立连接
    6,如果建立连接后,取得服务器端发送的信息并打印出来。。
      

  2.   

    这两个程序是同步执行的吗?
    是不是执行客户端的Socket socket = new Socket("127.0.0.1", 30000);与服务器建立连接后程序先跳回服务器断执行应答代码再回来执行客户端Socket socket = new Socket("127.0.0.1", 30000)这一句下面的代码吗?
      

  3.   

    不是
    客户端的 socket.getInputStream() 也是 阻塞式的 客户端会等待 服务端输出数据后 再读取 服务端 输入的数据