我正在开发通过套接字进行通信的战舰摇摆应用程序。
private ServerSocket server;
private Socket connection;
private PrintWriter out;
private Scanner in;
我建立连接并设置输出和输入流
out = new PrintWriter(connection.getOutputStream(), true);
in = new Scanner(connection.getInputStream());
然后用户单击他认为有一艘船的字段,并发送坐标
public void sendXY(String cord)
{
out.print(cord);
}
然后调用该方法,等待对手应用程序响应是否有船(true|false)。
public void readHit()
{
boolean k = true;
while(k)
{
if(in.hasNext()) //<--app hangs at this line
{
Fields.hit = in.nextBoolean();
k = false;
}
}
}
但是当我测试这个时,我的应用程序在第一次调用 in.hasNext() 时挂起。
您可以首先测试连接输入流中是否有可用字节:
InputStream instream = connection.getInputStream();
in = new Scanner(instream);
然后更换
if(in.hasNext())
with
if (instream.available() > 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)