public class SocketDemo {
public static void startSocket(int port,DataHanler dataHanler){
try {
ServerSocket serverSocket = new ServerSocket(port);
while (true){
Socket accept = serverSocket.accept();
//连接建立,启动客户端,并向客户端发送一条数据
ClientHnadler clientHnadler = new ClientHnadler(port,accept,dataHanler);
clientHnadler.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static class ClientHnadler extends Thread{
private Socket socket;
private boolean flag = true;
private DataHanler dataHanler;
ClientHnadler(int port,Socket socket,DataHanler dataHanler){
this.socket = socket;
this.dataHanler = dataHanler;
}
@Override
public void run() {
super.run();
//客户端处理程序
try {
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while (true){
String content = dataHanler.dataHandler(bufferedReader);
OutputStream outputStream = socket.getOutputStream();
outputStream.write(content.getBytes());//将服务器返回的数据回送给客户端
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public interface DataHanler{
String dataHandler(BufferedReader bufferedReader);//将数据处理交给外部
}
}
Socket编程,暴露服务器处理接口
最新推荐文章于 2024-07-18 14:28:58 发布