gpt4 book ai didi

java - 基于事件的网络

转载 作者:太空宇宙 更新时间:2023-11-04 14:49:15 24 4
gpt4 key购买 nike

我设置了一个简单的服务器和客户端,服务器等待客户端发送内容,然后发送响应。但缺点是两者都必须监听套接字才能接收数据。如果我希望它的沟通更加灵活怎么办?我正在考虑基于事件的东西,所以每次套接字收到一些东西时,它都会调用一个方法来处理它,而不是暂停程序来等待 socket.nextLine()。

这是我的服务器代码:

try{
ss = new ServerSocket(port);
s = ss.accept();

in = new Scanner(s.getInputStream());
out = new PrintWriter(s.getOutputStream(), true);
while(!s.isClosed()){
String input = in.nextLine();
handleInput(input);
}
} catch (Exception e){}

在handleInput() 中,我向客户端发送响应。

最佳答案

如果您希望基于事件,让客户端在服务器发送数据包时执行某些操作,则可以使用多线程。

Thread t = new Thread(new Runnable() {
public void run() {
someMethod(in.nextLine());
}
});
t.start();

您必须在封闭类中创建in 字段。

这将导致您的程序执行,当它收到数据包时,它将调用 someMethod()

当然,这会带来许多与多线程相关的问题,但这确实是实现您想做的事情的唯一方法。

关于java - 基于事件的网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com