Java的echo_简单的Java echo服务器问题
我正在尝试编写我的第一个套接字服务器,所以我决定从一个非常简单的事情开始,只是为了计算流程:)我正在编写一个简单的
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服务器问题相关推荐
- 清华大学计算中心培训部-技术分享:JAVA入门:简单的Java程序
JAVA入门:简单的Java程序 清华大学计算中心培训部-技术分享:http://training.tsinghua.edu.cn/html/jishuyuandi/2009/0302/27.html
- 100转换成二进制 java,一段简单的java代码,十进制转二进制
一段简单的java代码,十进制转二进制 mip版 关注:188 答案:5 悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...
- 简单java程序_简单的Java程序
简单java程序 Simple java programs are good for assessing the coding skills of a programmer. You will fin ...
- java 抽奖_简单实现java抽奖系统
导读热词 本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public cla ...
- java实现死锁简单例子,Java死锁的简单例子
Java死锁的简单例子 两个线程互相占有对方需要的资源而不释放,便形成了死锁. 代码如下: Program.java /** * 程序类 * @author michael * */ public c ...
- 小学数学闯关游戏 java代码_简单的java程序 小学数学闯关游戏 多谢高分
展开全部 有4个类 MainFrame,Question,QuestionPanel,ResultPanel import java.awt.BorderLayout; import java.awt ...
- 简单的秒表计时器java报告_简单的Java秒表计时器(线程)
秒表的个个位数的计算: package Seconds; public class Watch_time extends Thread{ int ms,ms_1,ms_2; int s,s_1; in ...
- java txtreader_一个简单的Java读写文件例子
针对txt文件的读写可以使用java的读写操作.以下是一个简单的例子: import java.io.BufferedReader; import java.io.BufferedWriter; im ...
- linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别
WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专用于Web方面.大部分的JAVA WEB工程,都是打成WAR包 ...
最新文章
- Roadsend PHP-开源的PHP代码编译器
- 数据结构 - 二叉树的广度优先遍历算法(C++)
- xmlUtil 解析 创建
- Oracle数据库修改字段类型
- python获得当前目录_python如何获取当前工程根目录
- 丁腈橡胶自然老化时间_东莞元耀:解析抗UV老化试验箱正确的操作流程步骤
- 废弃P-value,还是学学如何评估统计检验结果?
- Docker基本使用方法(build image \run...)
- Java中instanceof关键字的作用
- 如何在Mac电脑上打开终端
- 生物信息学笔记03 -- 基因组序列分析 方法
- jQuery validate 添加表单验证方法
- 2022年江西省职业院校技能大赛“网络空间安全”比赛任务书
- POJ 1915(双向广搜)
- 如何搭建一个个人博客,这么写纯粹是为了通过shen he
- 商会协会团体网站搭建模板
- 算数平均-几何平均不等式的证明,从麦克劳林到柯西
- 同步手机QQ或微信消息到电脑端,需要时导入历史聊天记录
- html5刮奖效果,HTML5+Canvas实战之刮奖效果
- electron 剪贴板 截图_electron屏幕截图功能
热门文章
- 支付宝五福java_支付宝五福奖金翻倍!有人拿了5328元!今天最高能翻18倍,你拿到多少?...
- embed 标签怎么嵌入pdf_联合Aspect-Sentiment主题嵌入的弱监督的情感分析(2020年10)
- 怎么查redis 中的 cache_20、springcloud如何使用spring-cache
- RabbitMQ之五种消息模型
- PHP curl get post通用类
- DataTemplate和ControlTemplate的关系
- iphone 使用Core Graphics 剪贴图片
- 颜色选择器的设计与实现II
- 为什么实际频率只有1.8G的AMD 2500+处理器运行速度比实际频率2.4G的P4-2.4B还快
- python打印字符串全排列_Python实现全排列的打印