yskshr 2017-09-03 13:41 采纳率: 100%
浏览 880
已采纳

求教一个关于客户端与服务器端交互的问题

客户端
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s=new Socket("LocalHost",8888);
PrintWriter out=new PrintWriter(s.getOutputStream());
out.write("ni hao");
out.flush();
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(in.readLine());//这里会一直为阻塞状态
out.close();
}
}
服务器端
public class Server {
public static void main(String[] args) throws IOException {
Socket s=null;
ServerSocket ss=new ServerSocket(8888);
s=ss.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(in.readLine())];
//这里也为阻塞状态,如果将客户端的out.close();写到客户端的in.readLine()
前又会报Exception in thread "main" java.net.SocketException: Socket is closed at java.net.Socket.getInputStream(Unknown Source)错误,求解决方法

PrintWriter pw=new PrintWriter(s.getOutputStream());
pw.write("hello");
pw.flush();
pw.close();
}
}

  • 写回答

1条回答 默认 最新

  • 鼠晓 博客专家认证 2017-09-04 01:12
    关注

    读写之前加个判断
    判断socket没有关闭,,!client.isClosed()

    我前几天写的一个博客,,关于socket的题主可以参考参考:http://blog.csdn.net/small_mouse0/article/details/77758158

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配