我正在尝试编写我的第一个套接字服务器,所以我决定从一个非常简单的事情开始,只是为了计算流程:)我正在编写一个简单的

java echo服务器,但问题是(出于某种原因?! )我没有在客户端获得服务器响应,但是在服务器中收到了请求.

package poc.client;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

public class Client {

public static void main(String[] args) {

try {

final Socket socket = new Socket((String) null, 50000);

final BufferedReader reader = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

final PrintWriter writer = new PrintWriter(

socket.getOutputStream(), true);

writer.println("ala bala\r\n");

writer.flush();

writer.close();

System.out.println(reader.readLine());

System.out.flush();

} catch (Exception ex) {

Logger.getAnonymouseLogger().throwing(TAG, "main", ex);

}

}

}

而服务器部分是

package poc.server;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

/**

* debugging purposes only

*/

@SuppressWarnings("unused")

private static final String TAG = Server.class.getSimpleName();

public static void main(String[] args) {

try {

final ServerSocket socket = new ServerSocket(50000);

while (true) {

final Socket clientSocket = socket.accept();

final BufferedReader reader = new BufferedReader(

new InputStreamReader(clientSocket.getInputStream()));

final PrintWriter writer = new PrintWriter(clientSocket

.getOutputStream(), true);

writer.println(reader.readLine());

writer.flush();

writer.close();

}

} catch (IOException e) {

Logger.getAnonymouseLogger().throwins(TAG, "main",ex);

}

}

}

我阅读了所有的Oracle基本套接字教程/等,但我无法弄清楚是什么问题 – 我已成功写入服务器套接字但我似乎无法得到响应.

最佳答案 在从套接字读取之前不要关闭写入器.以下代码有效

final Socket socket = new Socket((String) null, 50000);

final BufferedReader reader = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

final PrintWriter writer = new PrintWriter(

socket.getOutputStream(), true);

writer.println("ala bala\r\n");

System.out.println(reader.readLine());

//writer.flush();

writer.close();

根据close()方法的javadoc:

Closes the stream and releases any system resources associated with

it. Closing a previously closed stream has no effect.

看起来如果关闭流,底层套接字也会关闭.您可以通过在当前代码中打印堆栈跟踪来验证这一点.它给出了java.net.SocketException:socket关闭错误.

Java的echo_简单的Java echo服务器问题相关推荐

  1. 清华大学计算中心培训部-技术分享:JAVA入门:简单的Java程序

    JAVA入门:简单的Java程序 清华大学计算中心培训部-技术分享:http://training.tsinghua.edu.cn/html/jishuyuandi/2009/0302/27.html

  2. 100转换成二进制 java,一段简单的java代码,十进制转二进制

    一段简单的java代码,十进制转二进制 mip版  关注:188  答案:5  悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...

  3. 简单java程序_简单的Java程序

    简单java程序 Simple java programs are good for assessing the coding skills of a programmer. You will fin ...

  4. java 抽奖_简单实现java抽奖系统

    导读热词 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public cla ...

  5. java实现死锁简单例子,Java死锁的简单例子

    Java死锁的简单例子 两个线程互相占有对方需要的资源而不释放,便形成了死锁. 代码如下: Program.java /** * 程序类 * @author michael * */ public c ...

  6. 小学数学闯关游戏 java代码_简单的java程序 小学数学闯关游戏 多谢高分

    展开全部 有4个类 MainFrame,Question,QuestionPanel,ResultPanel import java.awt.BorderLayout; import java.awt ...

  7. 简单的秒表计时器java报告_简单的Java秒表计时器(线程)

    秒表的个个位数的计算: package Seconds; public class Watch_time extends Thread{ int ms,ms_1,ms_2; int s,s_1; in ...

  8. java txtreader_一个简单的Java读写文件例子

    针对txt文件的读写可以使用java的读写操作.以下是一个简单的例子: import java.io.BufferedReader; import java.io.BufferedWriter; im ...

  9. linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别

    WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专用于Web方面.大部分的JAVA WEB工程,都是打成WAR包 ...

最新文章

  1. Roadsend PHP-开源的PHP代码编译器
  2. 数据结构 - 二叉树的广度优先遍历算法(C++)
  3. xmlUtil 解析 创建
  4. Oracle数据库修改字段类型
  5. python获得当前目录_python如何获取当前工程根目录
  6. 丁腈橡胶自然老化时间_东莞元耀:解析抗UV老化试验箱正确的操作流程步骤
  7. 废弃P-value,还是学学如何评估统计检验结果?
  8. Docker基本使用方法(build image \run...)
  9. Java中instanceof关键字的作用
  10. 如何在Mac电脑上打开终端
  11. 生物信息学笔记03 -- 基因组序列分析 方法
  12. jQuery validate 添加表单验证方法
  13. 2022年江西省职业院校技能大赛“网络空间安全”比赛任务书
  14. POJ 1915(双向广搜)
  15. 如何搭建一个个人博客,这么写纯粹是为了通过shen he
  16. 商会协会团体网站搭建模板
  17. 算数平均-几何平均不等式的证明,从麦克劳林到柯西
  18. 同步手机QQ或微信消息到电脑端,需要时导入历史聊天记录
  19. html5刮奖效果,HTML5+Canvas实战之刮奖效果
  20. electron 剪贴板 截图_electron屏幕截图功能

热门文章

  1. 支付宝五福java_支付宝五福奖金翻倍!有人拿了5328元!今天最高能翻18倍,你拿到多少?...
  2. embed 标签怎么嵌入pdf_联合Aspect-Sentiment主题嵌入的弱监督的情感分析(2020年10)
  3. 怎么查redis 中的 cache_20、springcloud如何使用spring-cache
  4. RabbitMQ之五种消息模型
  5. PHP curl get post通用类
  6. DataTemplate和ControlTemplate的关系
  7. iphone 使用Core Graphics 剪贴图片
  8. 颜色选择器的设计与实现II
  9. 为什么实际频率只有1.8G的AMD 2500+处理器运行速度比实际频率2.4G的P4-2.4B还快
  10. python打印字符串全排列_Python实现全排列的打印