TCP服务器和多个客户端传输数据
2016-04-03 00:04
483 查看
实现代码:
ReverseServer.java文件代码:
import java.net.*; public class ReverseServer { public static void main(String[] args) { // TODO Auto-generated method stub try { ServerSocket ss = new ServerSocket(8001); boolean bRunning = true; while (bRunning) { Socket s = ss.accept(); new Thread(new Servicer(s)).start(); } ss.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
Servicer.java文件代码:
import java.net.*; import java.io.*; public class Servicer implements Runnable { private Socket s = null; public Servicer(Socket s) { this.s = s; } public void run() { try { InputStream ips = s.getInputStream(); OutputStream ops = s.getOutputStream(); BufferedReader br = new BufferedReader( new InputStreamReader(ips)); PrintWriter pw = new PrintWriter(ops,true); while (true) { String strLine = br.readLine(); if(strLine.equalsIgnoreCase("quit")) { break; } String strEcho = (new StringBuffer(strLine).reverse()).toString(); pw.println(strLine + "-->" + strEcho); } br.close(); pw.close(); s.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
运行结果:
现在Eclipse里面运行ReverseServer,再启动3个cmd窗口,运行telnet客户端:
为什么会产生这样的结果,因为其实输入了5个字符abd{Backspace}c这样会显示abc,当反过来是就成了c{Backspace}dba就会显示dba。
相关文章推荐
- 一步一步学树莓派 RaspberryPi 3 Model B - 无线网络和远程桌面
- HTTP状态码
- python3用http.server模块搭建简易版服务器
- nginx 使用 let's encrypt 配置https
- [6644] 02 Apr 23:11:58.976 # Creating Server TCP listening socket *:6379: bind: No such file or directory
- Meta http-equiv属性详解
- Observium来监控你的网络和服务器
- Coursera_机器学习_week4&5_神经网络
- 网络设备-华为-交换机堆叠终结配置篇
- 20160402_TCP/IP协议簇
- fiddler composer创建和发送HTTP Request (文后附我自己的补充)
- 20160402_TCP连接的建立、终止和状态转换
- Android网络图片加载缓存处理库的使用
- 详解https是如何确保安全的
- TCP KeepAlive
- java网络通信
- OkHttp+Stetho+Chrome调试android网络部分
- HTTP缓存原理
- HTTP状态码大全
- 【费用流】【网络流24题】【cogs 739】运输问题