最近看到阿里的一位童鞋写的一本关于分布式的书,感觉不错,准备把这本书上基础的代码都写一写。

/**
 * 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());

    }
}

Java——基于java自身包实现消息系统间的通信(TCP/IP+BIO)的更多相关文章

  1. Java——基于java自身包实现消息系统间的通信(TCP/IP+NIO)

    /** * Created by LiuHuiChao on 2016/11/15. * description:based on TCP/IP+NIO to deliver the message ...

  2. Java多线程之线程的状态以及线程间协作通信导致的线程状态转换

      转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561589.html  一:线程的状态以及变化图 Java中线程中状态可分为五种:New(新建状态),Ru ...

  3. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  4. Java基于SSM的个人博客系统(源码 包含前后台)

    @ 目录 系统简介 系统运行截图 核心代码 写在最后 系统简介 技术点:Java.JSP.SSM框架,实现了个人博客系统 用户角色分为:普通用户.管理员.系统管理员 功能:发博客.博客分类.博客删除. ...

  5. Java并发读书笔记:如何实现线程间正确通信

    目录 一.synchronized 与 volatile 二.等待/通知机制 等待 通知 面试常问的几个问题 sleep方法和wait方法的区别 关于放弃对象监视器 三.等待通知典型 生产者消费者模型 ...

  6. Java通过wait()和notifyAll()方法实现线程间的通信

    Java代码(使用了2个内部类): package Threads; import java.util.LinkedList; /** * Created by Frank */ public cla ...

  7. Java核心知识点学习----多线程并发之线程间的通信,notify,wait

    1.需求: 子线程循环10次,主线程循环100次,这样间隔循环50次. 2.实现: package com.amos.concurrent; /** * @ClassName: ThreadSynch ...

  8. 分布式架构从零开始========》【基于Java自身技术实现消息方式的系统间通信】

    基于Java自身包实现消息方式的系统间通信的方式有:TCP/IP+BIO,TCP/IP+NIO,UDP/IP+BIO,UDP/IP+NIO.下面就这4种类型一一做个详细的介绍: 一.TCP/IP+BI ...

  9. Java与C++进行系统间交互:Protocol Buffer

    在一次项目中,因笔者负责的java端应用需要与公司C++系统进行交互,公司选定Protocol Buffer方案,故简单的了解一下 有需要的可以看一下其他作者的文章,了解一下Protobuf: htt ...

随机推荐

  1. Python ,pickle

    @Python pickle模块学习   pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. ---------------------------------------- ...

  2. 协议森林08 不放弃 (TCP协议与流通信)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! TCP(Transportation Control Protocol)协议与IP ...

  3. HTML5本地存储——IndexedDB

    在HTML5本地存储——Web SQL Database提到过Web SQL Database实际上已经被废弃,而HTML5的支持的本地存储实际上变成了 Web Storage(Local Stora ...

  4. vector详讲(一)

    <vector>头文件里带有两个类型参数的类模板,第一个参数是需要指定的数据类型,第二个是分配器(allocator)类型 template<class T, class Alloc ...

  5. selenium断言的分类

    操作(action).辅助(accessors)和断言(assertion): 操作action: 模拟用户与 Web 应用程序的交互. 辅助accessors: 这是辅助工具.用于检查应用程序的状态 ...

  6. pdo_mysql扩展以及测试

    1.进入 PHP 的软件包 pdo 扩展目录中(注:php的tar包解压目录) 2.配置和编译文件 进入 在PHP源码包中进入 cd /data/php-5.6.36/ext/pdo_mysql 执行 ...

  7. HDU Virtual Friends(超级经典的带权并查集)

    Virtual Friends Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  8. Java中的集合框架-Collection(一)

    一,Collection接口 在日常的开发工作中,我们经常使用数组,但是数组是有很多的局限性的,比如:数组大小固定后不可修改,只能存储基本类型的值等等. 基于数组的这些局限性,Java框架就产生了用于 ...

  9. 【腾讯敏捷转型NO.1】敏捷是什么鬼?

    “敏捷是什么鬼” 最近对外进行<腾讯产品敏捷研发体系>授课的时候,我经常可以从参课学员的眼睛里找到这句话. 通常我会鼓励大家,说:“告诉大家一个好消息,你们今天所有的疑问都是有答案的,唯一 ...

  10. org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

    org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping 原因:yml文件格式错误,此文件要求严格要求格式 如节 ...