Java Socket实战之一:单线程通信
转自:http://developer.51cto.com/art/201202/317543.htm
现在做Java直接使用Socket的情况是越来越少,因为有很多的选择可选,比如说可以用spring,其中就可以支持很多种远程连接的操作,另外jboss的remoting也是不错的选择,还有Apache的Mina等等,但是在有些时候一些特殊情况仍然逃脱不了直接写Socket的情况,比如公司内部一些莫名其妙的游戏规则。
废话不说了,下面就看看如果自己写Socket应该怎么做吧。
首先是写一个Server类,这个类用来监听10000端口,并从这个端口接收消息然后输出,当收到“bye”时退出。
1 package com.googlecode.garbagecan.test.socket.sample1; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import java.net.ServerSocket; 8 import java.net.Socket; 9 10 public class MyServer { 11 public static void main(String[] args) throws IOException { 12 ServerSocket server = new ServerSocket(10000); 13 Socket socket = server.accept(); 14 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 15 PrintWriter out = new PrintWriter(socket.getOutputStream()); 16 17 while (true) { 18 String msg = in.readLine(); 19 System.out.println(msg); 20 out.println("Server received " + msg); 21 out.flush(); 22 if (msg.equals("bye")) { 23 break; 24 } 25 } 26 socket.close(); 27 } 28 }
然后是一个Client类,这个类连接上面启动的Server类,然后接收任何用户输入,当遇到回车时发送字符串到Server上,当输入“bye”是退出。
1 package com.googlecode.garbagecan.test.socket.sample1; 2 3 import java.io.BufferedReader; 4 import java.io.InputStreamReader; 5 import java.io.PrintWriter; 6 import java.net.Socket; 7 8 public class MyClient { 9 public static void main(String[] args) throws Exception { 10 Socket socket = new Socket("localhost", 10000); 11 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 12 PrintWriter out = new PrintWriter(socket.getOutputStream()); 13 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 14 15 while (true) { 16 String msg = reader.readLine(); 17 out.println(msg); 18 out.flush(); 19 if (msg.equals("bye")) { 20 break; 21 } 22 System.out.println(in.readLine()); 23 } 24 socket.close(); 25 } 26 }
最后,首先运行MyServer类,然后MyClient类,然后在MyClient的控制台输入任意字符,可以看到当输入bye是server和client都会退出。
转载于:https://www.cnblogs.com/sharpest/p/10055437.html
Java Socket实战之一:单线程通信相关推荐
- [置顶] Java Socket实战之一 单线程通信
本文地址:http://blog.csdn.net/kongxx/article/details/7259436 现在做Java直接使用Socket的情况是越来越少,因为有很多的选择可选,比如说可 ...
- Java Socket实战之六 使用NIO包实现Socket通信
2019独角兽企业重金招聘Python工程师标准>>> 本文地址:http://blog.csdn.net/kongxx/article/details/7288896 Java S ...
- Java Socket实战之四 传输压缩对象
2019独角兽企业重金招聘Python工程师标准>>> 本文地址:http://blog.csdn.net/kongxx/article/details/7259834 Java S ...
- [转载]Java Socket实战之二 多线程通信
上一篇文章说到怎样写一个最简单的Java Socket通信,但是在上一篇文章中的例子有一个问题就是Server只能接受一个Client请求,当第一个Client连接后就占据了这个位置,后 续Clien ...
- Java Socket实战之三:传输对象
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象. ...
- Java Socket实战之五:使用加密协议传输对象
转自:http://developer.51cto.com/art/201202/317547.htm 前面几篇博文提到了Socket中一些常用的用法,但是对于一些有安全要求的应用就需要加密传输的数据 ...
- (java)socket全双工长连接通信实例
(借鉴备忘)直接上代码: client: import java.io.InputStreamReader; import java.io.OutputStreamWriter; import jav ...
- java socket同步_Java socket客户端与服务端同步通信实例
工作中没涉及有关JAVA SOCKET编程的实际经历,但理论大概了解.想正明一下自已的对JAVA SOCKET理解写个通信TEST,通过TEST验证了基本与理论相近.下面是TEST SRC CODE ...
- java socket简,javasocket简单示例
简单Socket测试_计算机软件及应用_IT/计算机_专业资料.简单的聊天小测试 服务端 importjava.io.DataInputStream; importjava.io.DataOutput ...
最新文章
- 机器学习+优化问题的种类、如何优化、凸优化、非凸优化、对偶问题、KKT条件
- openresty url重写
- 网站颜色搭配的好网站。
- jQuery中排除指定元素,同时选择剩下的所有元素
- 洛谷 P1111 修复公路(最小生成树)
- 嵌入式linux实时化技术,嵌入式Linux实时化技术
- 如何在云服务器上安装vim(bash: vim :command not found)
- 图论--双连通E-DCC缩点模板
- Python isnumeric()方法
- Laravel初探——安装
- a6gpp php,内行人才知道的古董级玛莎拉蒂A6G 2000
- andriod环境搭建
- Unity3D 学习教程 14 C# 旋转镜头
- C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
- c语言程序漏洞分析,C语言源程序的缓冲区溢出漏洞分析及解决方案.pdf
- 【matplotlib教程】绘图样式,文本线型、轴刻度
- 方舟大洋洲服务器稳定嘛,方舟生存进化最新版182.0更新内容翻译一览
- 享有盛誉的PHP高级教程
- MATLAB特殊矩阵的构造
- 【统计学】参数估计、点估计、区间估计、置信区间