我曾尝试编写服务器端应用程序。从学校开始,我倾向于不要让代码无限循环。但是,在我的服务器端应用程序中,我还没有找到在什么条件下我应该从无限循环中退出的方式。代码
ServerSocket s = null;
s = new ServerSocket(5000 , 10);
Socket connection = null;
while(true)
{
connection = s.accept();
//create new thread to handle client
new client_handler(connection).start();
}
答案 0 :(得分:5)
通常在服务器上关闭JVM时退出循环。或者抛出异常但没有捕获。这是无限循环合理的一种情况。如果一切顺利,你的服务器将永远存在。
答案 1 :(得分:4)
使用boolean
标记,您可以在循环内部或外部的某个位置设置为false
。
boolean started = true;
while (started) {
...
}
答案 2 :(得分:4)
如果服务器应该无限期地运行并接受连接,则无需退出循环。
如果有某些命令或条件,当服务器终止时,只需这样做
while(true) {
connection = s.accept();
//create new thread to handle client
new client_handler(connection).start();
if (condition)
break;
}
甚至更好
while (!condition) {
...
}
答案 3 :(得分:3)
通常对于这些应用程序,您使用一些标志来表示终止,如下所示:
private volatile boolean shouldDie = false; //thevolatile bit is important
...
while (!shouldDie) {
//do some work
}
然后当你想让程序终止时你只需要将标志设置为tru并等待(这是为了优雅终止)
答案 4 :(得分:2)
您的while
语句总是会评估为true,因为您传递了值true
而不是使用任何条件
答案 5 :(得分:1)
你可以这样做:
boolean loopCheck = true;
while(loopCheck)
{
//do stuff
loopCheck = false;
}
在PHP中,不确定它是否在java中有效,我们可以
while(true)
{
//do stuff
break;
}
答案 6 :(得分:0)
Use a boolean flag.
boolean flag=true;
while(flag)
{
// Your code here
if(condition) //condition to exit loop
{
flag=false;
}
}