一、BIO

BIO,即同步并阻塞。服务端会在ServerSocket对象的accept方法发生阻塞,当有连接进入的时候,才能继续往下执行;读取数据,调用read方法时,也会发生阻塞。

二、服务端

public class BIOServer {public static void main(String[] args) {try {openServer(8888);} catch (IOException e) {e.printStackTrace();}}private static void openServer(int port) throws IOException {
//        创建ServerSocketServerSocket serverSocket = new ServerSocket();
//        绑定端口serverSocket.bind(new InetSocketAddress(port));System.out.println("BIOServer启动...");while (true){
//            堵塞,等待客户端连接Socket socket = serverSocket.accept();System.out.println("连接成功...");
//            输入流
//            BufferedReader是缓冲输入流,InputStreamReader是转换输入流,InputStream是字节输入流BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String str = null;while ((str = br.readLine()) != null){if("quit".equals(str)){break;}System.out.println(str);}
//            关闭流br.close();
//            关闭socketsocket.close();System.out.println("连接结束...");}//        System.out.println("BIOServer关闭...");}}

三、客户端

public class BIOClient {public static void main(String[] args) {try {connect("127.0.0.1", 8888);} catch (IOException e) {e.printStackTrace();}}private static void connect(String hostname, int port) throws IOException {
//        创建socketSocket socket = new Socket();
//        连接socket.connect(new InetSocketAddress(hostname, port));
//      输出流
//      BufferedWriter是缓冲输出流,OutputStreamWriter是转换输出流,OutputStream是字节输出流BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));//       标准输入流,从键盘输入BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = null;while ((str = br.readLine()) != null){
//            如果从键盘输入quit,则退出循环if ("quit".equals(str)){break;}bw.write(str);
//            需要写换行,因为server端每次读取一行bw.newLine();bw.flush();}//        关闭流br.close();
//        关闭socketsocket.close();}}

Java Socket实现基于BIO的TCP通信相关推荐

  1. JAVA学习-JAVA实现客户端与服务器端的TCP通信

    JAVA实现客户端与服务器端的TCP通信 (JAVA 工程训练阶段一.训练任务三基本通信能力.基本任务3.2javaTCP 通信) 编写两个java application 应用程序,完成以下功能: ...

  2. Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...

    此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...

  3. Java Socket编程 - 基于TCP方式的二进制文件传输

    一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实现主要功能有以下几点: 1. ...

  4. JAVA SE学习day_07:异常处理、TCP通信

    一.异常中常见的方法 public static void main(String[] args) {System.out.println("程序开始了");try {String ...

  5. 基于QT的TCP通信

    一.简介 TCP通信必须先建立TCP链接,通信端分为客户端和服务器端.QT提供了QTcpServer类和QTcpSocket类用于建立TCP通信应用程序.QTcpServer用于端口监听,建立服务器: ...

  6. Java Socket实现客户端服务端之间的通信

    Java Socket Java Socket编程用于在不同JRE上运行的应用程序之间的通信. Java Socket编程可以是面向连接的或无连接的. Socket和ServerSocket类用于面向 ...

  7. 暑期JAVA学习(41.1)TCP通信——多发多收消息

    TCP通信--多发多收消息 一.使用TCP通信实现:多发多收消息案例 (1)需求 (2)具体要求 (3)具体实现 (4)总结 ①本案例实现了多发多收,那么是否可以同时接收多个客户端的消息? ②本次多发 ...

  8. Java——网络编程(UDP与TCP通信及实现聊天案例)

    目录 1.什么是网络通信协议? 2.TCP/IP协议 3.协议分类 3.1.UDP协议 3.2.TCP协议 4.网络编程三大要素 4.1.协议 4.2.IP地址 4.3.端口号 5.InetAddre ...

  9. S7-1200PLC 基于以太网的TCP通信

    硬件:cpu 1214C 目的:测试TCP通信 软件:Portal V14SP1 1. 硬件组态 插入两台cpu,分配IP地址,并在网络视图下将两个PLC的网口连接起来 PLC_1:192.168.0 ...

最新文章

  1. linux cat 查看文件内容 不带#号的,Linux下如何不用cat命令读取文件内容
  2. Gartner2018新兴技术成熟度曲线:人机界线日益模糊!
  3. 网站预加载进度条的实现
  4. 代码审查就是在排大便——你懂的!
  5. 皮一皮:越是拥有越不会炫耀...
  6. PHP魔术常量trait
  7. 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
  8. 虚拟寄存器,虚拟堆栈与真实寄存器,真实堆栈如何对应
  9. 孙长凯sunck_傅里叶变换红外光谱分析NMDA受体单克隆抗体抗-中国科技论文在线.PDF...
  10. kafka跨集群同步方案
  11. 【FLink-未解决】FLink Mertic 冲突 导致 任务挂掉 Namecollision Group allready contains a mertics
  12. hypermesh10的安装
  13. Java集合框架使用总结
  14. java必须会的linux_java程序员必须要学会的linux命令总结(推荐)
  15. 华为数通 软开 2022校招 面试全过 已开奖
  16. 《码农翻身》总结整理
  17. 【漆学军】分享一个自定义K线的指标的源码
  18. Android中使用SAX方式解析XML文件
  19. 银联云闪付开发联调步骤向导
  20. How to Add a Dotted Underline Beneath HTML Text

热门文章

  1. 人人都该学编程时 这些孩子已经玩转编程
  2. 计算机图形学画圆vc代码,VC++计算机图形学画直线、圆形、矩形示例源码
  3. 《论语》全译——学而篇第一
  4. 联想Y410P:合上盖子用teamviewer远程黑屏问题
  5. dxp2004库的加载
  6. 2013终端五大趋势
  7. MSDE2008安装备忘
  8. 【内网学习笔记】24、SPN 的应用
  9. 废旧Android手机如何改造成Linux服务器?
  10. (附源码)计算机毕业设计SSM基于农产品交易系统