java死循环的代码 java死循环代码正确停止错误继续循环

java多线程死循环

你程序是:

成都创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,成都做网站、网站设计,塑造企业网络形象打造互联网企业效应。

服务端有不断的向客服端写信息,客户端有不断的读来自服务端的信息。

但是反过来,客户端没有不断的向服务端写信息。服务端也没有不断的读来自客户端的信息。

用线程解决:

在客户端新加一条线程,专门用来读取来自服务端的信息。

在服务端新加一条线程,专门用来读取来自客户端的信息。

而在各自的main()函数中只负责不断接收system.in信息,然后发送信息..

其实不用线程的。。我也改了下,改的好像较多。

运行步骤:

开server端,开kehu端。客房端先写入信息。。然后,你一句我一句。只能按这顺序。。这就是没用线程的结果。

代码如下:

服务端:

import java.net.*;

import java.io.*;

public class Server {

public static void main(String[] args)

{

System.out.println("我是服务器");

try {

ServerSocket ss=new ServerSocket(8000);

Socket sk=ss.accept();

OutputStream os=sk.getOutputStream();

BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os));

bw.write("你好,我是服务器,有什么需要我服务的嘛?\n");

bw.flush();

InputStream is=sk.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(is));

while(true)

{

String str=br.readLine();

if(str.equals("bye")||str==null)break;

System.out.println("客户端说:"+str);

String sr="";

BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));

sr=br1.readLine();

bw.write(sr+"\n");

bw.flush();

}

}

catch (Exception e) {

System.out.println("客用户机己断开");

}

}

}

客户端:

import java.net.*;

import java.io.*;

public class kehu {

public static void main(String[] args)

{

System.out.println("我是客户");

try {

Socket s=new Socket(InetAddress.getByName(null),8000);

InputStream is=s.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(is));

OutputStream os=s.getOutputStream();

BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os));

String sr="";

while(true)

{

sr=br.readLine();

if(sr.equals("bye")||sr==null)break;

System.out.println("服务器说"+sr);

BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));

sr=br1.readLine();

bw.write(sr+"\n");

bw.flush();

}

} catch (Exception e) {

System.out.println("服务器未开户或己关闭~");

}

}

}

java中怎么设计一个死循环?

最简答的

int i = 0; //记录循环的次数

while(true){

//为了让你看到循环的打印信息

System.out.println(++i+"次死循环");

}

java的死循环问题

当某一扫描器抛出 InputMismatchException 时,该扫描器不会传递导致该异常的标记,因此可以通过其他某种方法来获取或跳过它。

这是java API文档中的原话。意思是说,如果nextInt方法没有成功解析出一个整数,那么你的输入不会被忽略。因为它或许能被其它格式解析。

那么你的程序中输入了a后,出现异常,number被赋值100,开始下一次循环,但这时数据缓冲区内你上次输入的a还在,并没有清除,这时继续解析a,还是错误,于是这个过程就一直重复下去了。

现在你要改的是,出现错误把这次的输入清除,只要在catch中,加一句:input.next()就搞定了!


当前名称:java死循环的代码 java死循环代码正确停止错误继续循环
文章源于:http://myzitong.com/article/hphcio.html