Java——基于java自身包实现消息系统间的通信(TCP/IP+BIO)
2024-09-23 20:16:17
最近看到阿里的一位童鞋写的一本关于分布式的书,感觉不错,准备把这本书上基础的代码都写一写。
/** * Created by LiuHuiChao on 2016/11/15. * description:based on TCP/IP+BIO to deliver the message */ public class TCP_IP_BIO { /** * client端 * @throws IOException */ @Test public void startClient() throws IOException { Socket socket =new Socket("127.0.0.1",8888); /**创建读取服务器端返回流的BufferedReader*/ BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream())); /**创建向服务器写入流的PrintWriter*/ PrintWriter out=new PrintWriter(socket.getOutputStream(),true); /**向服务器发送字符串信息,此处即使写失败,也不会抛出异常信息,并且一直阻塞到写入操作系统或网络IO出现异常*/ out.println("chifanla"); /**阻塞读取服务端的返回信息,一下代码会阻塞到服务端返回信息或者网络IO出现异常,如果希望在超时一段时间就不阻塞了,那么久需要在创建socket之后,调用setTimeOut*/ //in.readLine(); } /** * 服务端 * @throws IOException */ @Test public void startServer() throws IOException { /**创建对本地指定端口的监听,如果端口冲突,则抛出SocketException;其他网络IO异常抛出IOException*/ ServerSocket serverSocket=new ServerSocket(8888); /**接受客户端简历的连接请求,并且返回一个Socket对象,以便与客户端进行交互;*/ Socket socket=serverSocket.accept(); byte[] read=new byte[128]; socket.getInputStream().read(read,0,128); System.out.println(read.toString()); } }
最新文章
- ★Kali信息收集~ 1.Google Hacking + Github Hacking
- memcache服务器端及PHP memcache扩展的安装(转载)
- Oracle学习笔记(1)----忘记用户名的密码该如何找回
- linux故障判断
- 把ISO文件加载到虚拟光驱
- POJ - 2183 Bovine Math Geniuses
- iOS 获得指定文件夹下的指定格式文件
- 深入ThreadLocal之二
- STM32F4_TIM输入波形捕获(脉冲频率)
- [shell基础]——tr命令
- iOS开发--验证码
- 【数据结构与算法分析——C语言描述】第一章总结 引论
- cocos2dx 帧动画(iOS)
- What is SignalR and Why Should I Use It?
- File对象的常用方法
- Qt控件窗体区域区分
- 【vuejs深入二】vue源码解析之一,基础源码结构和htmlParse解析器
- Redis缓存机制一为什么要用Redis
- 用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!
- php ajax bootstrap多文件上传图片预览,ajax上传文件
热门文章
- mysql-5.5 for linux源代码安装
- BZOJ1499:[NOI2005]瑰丽华尔兹(DP,单调队列)
- 【[SDOI2013]泉】
- 随手练——POJ - 2676 数独 (回溯法)
- browserify文件后函数调用报is not defined的原因
- robotframwork接口测试(四)—其他库的安装
- JDK(七)JDK1.8源码分析【集合】TreeMap
- RSA加密算法和签名算法
- Spring Cloud Sleuth 之Greenwich版本全攻略
- jdk1.8换成1.7