本帖最后由 luo2pei4321 于 2010-06-11 16:55:29 编辑

解决方案 »

  1.   

    你的服务器端,只读了一次,就回去accept了
    下面这段加个for循环5次
    if (socket != null) {                    ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
                        Object obj = ois.readObject();                    System.out.println("Context: " + obj.toString());
                    }
      

  2.   

    package com.xuz.csdn.worldcup;import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.net.ServerSocket;
    import java.net.Socket;public class ServerTest { private ServerSocket serverSocket;
    private Socket socket; public ServerTest() {
    try {
    serverSocket = new ServerSocket(31313);
    socket = null;
    } catch (IOException ioe) {
    ioe.printStackTrace();
    }
    } private void start() { try { System.out.println("Server start..."); while (true) { socket = serverSocket.accept(); if (socket != null) { ObjectInputStream ois = new ObjectInputStream(socket
    .getInputStream()); Object obj;
    while (true) {
    obj = ois.readObject();
    if (obj.toString().equals("quit")) {
    break;
    }
    System.out.println("Context: " + obj.toString());
    } ois.close();
    }
    } } catch (Exception e) {
    e.printStackTrace();
    }
    } /**
     * @param args
     */
    public static void main(String[] args) {
    ServerTest serverTest = new ServerTest();
    serverTest.start();
    }}package com.xuz.csdn.worldcup;import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;public class ClientTest {    public static void main(String[] args) {        try {            Socket socket = new Socket("127.0.0.1", 31313);            ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());            for (int i = 0; i < 5; i++) {
                    System.out.println(i);
                    oos.writeObject("123");
                    oos.flush();
                }
                
                oos.writeObject("quit");
                oos.flush();
                oos.close();        } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    次数限制不靠谱。server死循环等待client的退出标志。
      

  3.   

    服务器accept后应该启动一个线程来读取客户端发送来的数据并处理,而不是在单线程下处理,否则2个并发都扛不住!
      

  4.   

     顶楼上,不久前也做了一个,不过是界面的,发的一个写在send的button中,接的一个写在主程序中。