java--socket编程,报错为 java.net.SocketInputStream.read(Unknown Source),怎么回事啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java--socket编程,报错为 java.net.SocketInputStream.read(Unknown Source),怎么回事啊?相关的知识,希望对你有一定的参考价值。
服务器代码:public class Server
public static void main(String args [])
ServerSocket server=null;
Socket client=null;
System.out.println("2号位置");
while(true)
try
server=new ServerSocket(2014);
System.out.println("1号位置");
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
try
client=server.accept();
System.out.println("3号位置");
catch (IOException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
if(client!=null)
new ServerThread(client).start();
System.out.println("4号位置");
try
server.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
class ServerThread extends Thread
Socket socket;
DataOutputStream out=null;
DataInputStream in=null;
String s;
ServerThread(Socket s)
socket=s;
try
out=new DataOutputStream(socket.getOutputStream());
in=new DataInputStream(socket.getInputStream());
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
public void run()
while(true)
try
double r=in.readDouble(); //就是这一行报的错
double area=Math.PI*r*r;
out.writeDouble(area);
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
重新运行一次后,报错的位置又变了
public static void main(String args [])
ServerSocket server=null;
Socket client=null;
System.out.println("2号位置");
while(true)
try
//你在这里new serverSocket也就是说每次有客户端连接都会申请新的端口2014;
//你试过有两个客户端连接的时候会不会报错?
server=new ServerSocket(2014);
System.out.println("1号位置");
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
try
client=server.accept();
System.out.println("3号位置");
catch (IOException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
if(client!=null)
new ServerThread(client).start();
System.out.println("4号位置");
try
server.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
class ServerThread extends Thread
Socket socket;
DataOutputStream out=null;
DataInputStream in=null;
String s;
ServerThread(Socket s)
socket=s;
try
out=new DataOutputStream(socket.getOutputStream());
in=new DataInputStream(socket.getInputStream());
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
public void run()
while(true)
try
//这里是个死循环!!!终归是不科学的;
//你没有给出客户端的代码 所以也没办法知道具体应该怎么写;
double r=in.readDouble(); //就是这一行报的错
double area=Math.PI*r*r;
out.writeDouble(area);
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
本回答被提问者采纳 参考技术B 在执行读之前,应该先判断是否有数据可读吧?!
CI框架页面打开空白,无报错为解决方法新环境
1、打开错误显示,可以在控制controllers的首页入口加入以下代码,查看错误 error_reporting(-1); ini_set(‘display_errors‘, 1); //插入显示所有错误 2、将网站路径内的文件夹权限给到777
以上是关于java--socket编程,报错为 java.net.SocketInputStream.read(Unknown Source),怎么回事啊?的主要内容,如果未能解决你的问题,请参考以下文章
angularjs 遇见$scope,xxx=function()报错为该函数未定义
openharmony编译报错ubuntu20.04按照官方文档,hb set报错为OHOS ERROR] Invalid vendor path: /home/openharmony/vendor
解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题
PostGIS 报错为org.postgresql.util.PSQLException:错误: Operation on mixed SRID geometries