使服务器不停止侦听套接字连接

kuarbcqp  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(147)

我正在用java创建一个socket服务器和客户机。
我的目标是服务器总是监听连接并同时保持所有连接。
问题是服务器在侦听一个套接字连接后停止。
服务器代码

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pkg1;

import java.io.*;

import java.net.*;

class Servidor {

    static final int PUERTO = 5007;

    public Servidor() {

        try {

            int numCli = 0;
            ServerSocket skServidor = new ServerSocket(PUERTO);

            System.out.println("Escucho el puerto " + PUERTO);

            for (;;) {
                Socket skCliente = skServidor.accept(); // Crea objeto

                numCli++;

                InputStream is = skCliente.getInputStream();
                byte[] mensaje = new byte[25];
                is.read(mensaje);
                System.out.println(new String(mensaje));

                    if (new String(mensaje).equals("KEY007

客户端套接字

package pkg1;
import java.io.*;

import java.net.*;

class Cliente {

  static final String HOST = "localhost";

  static final int PUERTO=5007;

  public Cliente( ) {

    try{

      Socket skCliente = new Socket( HOST , PUERTO );

        OutputStream os = skCliente.getOutputStream();
        String key ="KEY007";
        os.write(key.getBytes());

        InputStream is = skCliente.getInputStream();

                byte[] mensaje = new byte[25];

    is.read(mensaje);

        System.out.println(new String(mensaje));

      skCliente.close();

    } catch( Exception e ) {

      System.out.println( e.getMessage() );

    }

  }

  public static void main( String[] arg ) {

    new Cliente();

  }

}

现在,这段代码可以工作并在两者之间连接,但是在服务器获得一个连接之后,服务器活动就停止了。
如何使服务器侦听所有套接字连接并同时保留它们?
多谢你的帮助,我已经试了好几天了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题