我正在用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();
}
}
现在,这段代码可以工作并在两者之间连接,但是在服务器获得一个连接之后,服务器活动就停止了。
如何使服务器侦听所有套接字连接并同时保留它们?
多谢你的帮助,我已经试了好几天了。
暂无答案!
目前还没有任何答案,快来回答吧!