如何用socket创建服务器和客户端?

时间:2011-10-08 19:29:23

标签: java sockets networking

我需要构建一个应用程序,其中我运行四个服务器,一个客户端将一些软件包发送到这些服务器,但这些服务器必须始终保持运行,从客户端(发送方)接收内容。 所以我创建了两个类,客户端和服务器:

public class Server {

    public Event receive(int port) {

        Evento event = null;
        try {
            ServerSocket ss = new ServerSocket(port);

            Socket s = ss.accept();
            InputStream is = s.getInputStream();
            ObjectInputStream ois = new ObjectInputStream(is);

             evento = (Evento) ois.readObject();

            is.close();
            s.close();
            ss.close();

        }catch(Exception e){
            System.out.println(e);
        }

        return event;
    }
}



public class Client {
    public void send(Event event, int port) {
        try {
            Socket s = new Socket("localhost", 2002);
            OutputStream os = s.getOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(os);

            oos.writeObject(event);
            oos.close();
            os.close();
            s.close();

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

但正如我所说,我需要这些服务器一直运行,如果我测试一次,那没关系,但两次或更多,不要。 我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

标准模式是为每个连接创建一个线程。如果您使用一个线程,则只能从一个阻塞连接中读取。

答案 1 :(得分:0)

只需在readObject周围添加do while块。 作为休息条件,您可以检查消息是否类似于“退出”..

欢呼声