你的服務器沒有接到客戶的聯接﹐當然沒有響應了,服務器啟動後﹐你可在命令行中輸入
telnet localhost 1024
看一下

解决方案 »

  1.   

    当有客户连接时(主机,端口一致)时clientSocket=serverSocket.accept();才会被返回。
    不然就会一直等待,不会执行下面的程序。
      

  2.   

    port=Integer.parseInt(args[0]);
    参数0,那个不是你传入的参数,这个地方写错了。
      

  3.   

    server :
    import java.io.*;
    import java.net.*;
    import java.awt.*;
    import java.awt.event.*;public class Server extends Frame
    {
    private MemberPanel member = new MemberPanel();
    public Server()
    {
    super.setTitle("server");
    super.setSize(600, 400);
    super.setResizable(false);
    super.setBackground(SystemColor.controlHighlight);
    super.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    add("West", member);
    }

    public static void main(String[] args)
    {
    Server server = new Server();
    server.setVisible(true);
    //connectClient();
    }

    private static void connectClient()
    {
    ServerSocket server;
    Socket socket;
    String sMsg;
    InputStream is;
    OutputStream os;
    DataInputStream dis, in;
    PrintStream ps;

    try
    {
    server = new ServerSocket(4321); //4321 为端口号
    socket = server.accept();

    System.out.println("Server Socket OK");
    System.out.println("****************************");
    System.out.println("");

    //获得对应的 socket 输入/输出流
    is = socket.getInputStream(); 
    os = socket.getOutputStream();

    //建立数据流
    dis = new DataInputStream(is);
    ps = new PrintStream(os);

    in = new DataInputStream(System.in);

    while (true)
    {
    System.out.println("Please wait for client's message");
    System.out.println("");

    sMsg = dis.readLine();//读取从 client 传来的数据
    System.out.println("client said: " + sMsg);
    if (sMsg.trim().equals("BYE")) break;
    System.out.print("you say:");
    sMsg = in.readLine();
    ps.println(sMsg);
    if (sMsg.trim().equals("BYE")) break;
    }
    dis.close();
    ps.close();
    is.close();
    os.close();
    socket.close();
    }catch(Exception e)
    {
    System.out.println("Error: " + e.toString());
    }
    }
    }class MemberPanel extends Panel
    {
    private List list = new List();
    private Label label = new Label("当前在线成员:"); public MemberPanel()
    {
    setLayout(new BorderLayout());
    setSize(200, getSize().height);
    add("North", label);
    add("Center", list);
    addList();
    } private void addList()
    {
    list.addItem("12");
    }}
    client:import java.io.*;
    import java.net.*;
    import java.awt.*;
    import java.awt.event.*;public class Client extends Frame
    {
    public Client()
    {
    super.setTitle("client");
    super.setSize(400, 200);
    super.setResizable(false);
    super.setBackground(SystemColor.controlHighlight);
    super.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }

    public static void main(String[] args)
    {
    if (args.length < 1)
    {
    System.out.println("you forget the name of server!");
    System.exit(0);
    }
    Client client = new Client();
    client.setVisible(true);
    //connectServer(args[0]);
    }

    private static void connectServer(String serverName)
    {
    Socket socket;
    String sMsg;
    InputStream is;
    OutputStream os;
    DataInputStream dis, in;
    PrintStream ps;

    try
    {
    socket = new Socket(serverName, 4321);

    System.out.println("Client Socket OK");
    System.out.println("****************************");
    System.out.println("");

    //获得对应的 socket 输入/输出流
    is = socket.getInputStream(); 
    os = socket.getOutputStream();

    //建立数据流
    dis = new DataInputStream(is);
    ps = new PrintStream(os);

    in = new DataInputStream(System.in);

    while (true)
    {
    System.out.print("you say:");
    sMsg = in.readLine();
    ps.println(sMsg);
    if (sMsg.trim().equals("BYE")) break; System.out.println("Please wait for server's message");
    System.out.println(""); sMsg = dis.readLine();//读取从 server 传来的数据
    System.out.println("server said: " + sMsg);
    if (sMsg.trim().equals("BYE")) break;
    }
    dis.close();
    ps.close();
    is.close();
    os.close();
    socket.close();
    }catch(Exception e)
    {
    System.out.println("Error: " + e.toString());
    }
    }
    }运行通过
      

  4.   

    嗬嗬,没有细看代码。如果你的服务器端Socket程序在运行,但是一直没有客户端程序来连接你的服务器端Socket程序端口的话,那么你的服务器端Socket程序就会一直处在监听状态,就是被阻塞了。具体的你需要看一下accept()这个方法。
      

  5.   

    大致看来.程序没有什么问题. 但服务器端的程序是要等用户端连结后,accept()才能结束返回,也就是才会有输出. 所以你需要写一client端的程序做连结.在运行后,应该就有输出了.