我有一个布尔变量来控制服务器的执行(启动/停止):
private boolean ecoute = true;
这是我的课:
sw=new SwingWorker<String,Void> (){
protected String doInBackground() throws Exception {
try {
server = new ServerSocket(Integer.parseInt(port.getText()));
String str1="waiting for connexion..";
String str2="Connexion ok";
log.append(str1+"\n");
PrintWriter out=null;
BufferedReader in=null;
Socket socClient=null;
while(ecoute){
socClient = server.accept();
log.append(str2+"\n");
in = new BufferedReader(
new InputStreamReader(socClient.getInputStream())
);
out = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socClient.getOutputStream())),
true);
String str = in.readLine();
log.append(str+"\n");
}
in.close();
out.close();
socClient.close();
return "***End Reception***";
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
return "***Error Reception***";
}
}
protected void done(){
String m="";
try {
m=get();
} catch (InterruptedException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
} catch (ExecutionException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
log.append(m+"\n");
}
};
sw.execute();
}
当我单击按钮将变量传递给false时,我的线程退出无限循环,什么也没发生:
private void arretReceptionActionPerformed(java.awt.event.ActionEvent evt) {
ecoute=false;
}
我也换ecoute=false;
了 sw.calcel(true);
新东西…
有什么建议吗?
您的ServerSocket是导致循环不终止的原因。即使’ecoute’为假,server.accept()也会阻塞,直到满足以下两个条件之一:
您需要执行以下两项操作之一,以便对server.accept()的调用将停止阻塞。提醒您-
如果您选择关闭ServerSocket,则会抛出IOException。最好将对server.accept()的调用包装在try块中,而不是包装整个doInBackground()函数。
我在使用eureka进行客户端负载平衡时遵循了spring指南: https://spring.io/guides/gs/client-side-load-balancing/ 但是当我关闭了3个服务器实例中的任何一个后,我得到了一个连接拒绝异常。客户端仍然试图向这些服务器发送请求,而不是忽略未通过ping的服务器。当这些服务器被ping时,我会得到一个异常,当客户端试图向这些服务器发送请求时,也
OSX 10.13.6 并且(在另一个终端窗口中): 根据mysql.server的MariaDB文档,这两个命令都应该工作。 目前,我正在像这样杀死服务器: 7stud 4544 0.0 0.0 4267752 880 s000 s+1:41 pm 0:00.00 grep mysqld 关闭mariadb服务器的正确方法是什么?
本文向大家介绍基于C#实现Windows服务状态启动和停止服务的方法,包括了基于C#实现Windows服务状态启动和停止服务的方法的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式展示了基于C#实现Windows服务状态启动和停止服务的方法。非常实用。分享给大家供大家参考之用。具体方法如下: 首先先引用: 然后在引用命名空间: 建立服务对象: 服务运行则停止服务: 服务停止则启动服务: 希望
问题内容: Node.js服务器适用于支持回调函数的基于事件的模型。但是我无法理解它比传统的基于线程的服务器(线程等待系统IO)有什么优势。在基于线程的模型的情况下,当线程需要等待IO时,它将被抢占,因此不会消耗CPU周期,因此不会增加等待时间。 Node.js如何改善等待时间? 问题答案: 线程是相对较重的对象,具有资源足迹,一直扩展到内核。当您将线程驻留在阻塞的系统调用中或互斥或条件变量上时,
我使用Spring Boot开发了这个websocket服务器。服务器与基于js的客户机配合得很好。 控制器: 这是服务器端。现在,对于客户机,我已经创建了一个@ClientEndpoint,当我连接到URI“ws://localhost:8080/spring-mvc-java/chat”时,我能够建立一个连接,并且可以看到@ClientEndpoint的@OnOpen回调被触发。 但是,use
问题内容: 我想停止redis服务器,并且它一直在运行。我正在使用redis-2.6.7 检查它是否正在运行: 它显示“ … bind:地址已在使用中”,因此它已在运行。 我努力了 它只是挂起,没有任何反应。我中断检查,是的,它仍在运行。 我努力了 我得到“无法打开配置文件’停止’” 我试过了: 仍在运行。 我想要停止它的原因是,当我尝试通过Python设置或获取值时,它只是挂起了。所以我认为我会