有了建立连接的基础后,接下来尝试连续地发送和接收数据。

对于发送端比较好理解,有数据时就可以发送出去。对于接收端,就需要一直监听是否有数据发送过来。一个基本的方法就是使用 while(true) 循环不断去 read,考虑到效率问题如果对延时没那么高要求的话,可以适当 sleep。

下面是升级的 Server 端代码,这里改为使用 BufferedReader 来读取字符串的数据。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSocketTest {public static void main(String[] args) throws IOException, InterruptedException {ServerSocket serverSocket = new ServerSocket(10000);Socket socket = serverSocket.accept();System.out.println("Connected: " + socket.getRemoteSocketAddress());InputStream is = socket.getInputStream();InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);while (true) {try {String line = null;while ((line = br.readLine()) != null) {System.out.println(line);}} catch (Exception e) { // 客户端断开的情况System.out.println("Connection Close");break;}Thread.sleep(100);}}
}

客户端代码,也改为使用 BufferedWriter 写入,不断发送当前时间的字符串数据。

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;public class ClientSocketTest {public static void main(String[] args) throws IOException, InterruptedException {Socket socket = new Socket("127.0.0.1", 10000);OutputStream os = socket.getOutputStream();OutputStreamWriter osw = new OutputStreamWriter(os);BufferedWriter bw = new BufferedWriter(osw);while (true) {String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());try {bw.write(time); // 发送当前时间的字符串bw.newLine(); // 需要换行符做readLine()bw.flush(); Thread.sleep(1000);} catch (Exception e) {System.out.println("Connection Close");break;}}}
}

运行结果如下
Connected: /127.0.0.1:56198
2016-11-22 10:22:58
2016-11-22 10:22:59
2016-11-22 10:23:00
2016-11-22 10:23:01

2016-11-22 10:23:02

原文:http://www.androidstar.cn/java网络编程二-连续发送数据/

Java网络编程(二) 连续发送数据相关推荐

  1. Java网络编程二:Socket详解

    Socket又称套接字,是连接运行在网络上两个程序间的双向通讯的端点. 一.使用Socket进行网络通信的过程 服务端:服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户端的连接 ...

  2. JAVA网络编程:TCP/IP数据包结构

    2019独角兽企业重金招聘Python工程师标准>>> 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解网络数据 ...

  3. 【java奇思妙想】使用多线程的思想来实现java网络编程接收和发送的问题

    在学习网络编程的时候,实现了简单的聊天室功能,但是,此聊天室只能以如下流程实现: 客户端发送消息 -> 服务器端接收消息 -> 服务器端发送消息 -> 接收端接收消息 代码如下 1. ...

  4. [Java网络编程基础]TCP发送和接收数据

    代码如下: package ClientPack;import java.io.IOException; import java.io.OutputStream; import java.net.In ...

  5. [Java网络编程基础]UDP发送和接收数据

    代码如下: package InetAddressPack;import java.io.IOException; import java.net.*; import java.nio.charset ...

  6. Java网络编程:实现QQ邮件发送客户端

    目录 一.目标介绍 1.认识SMTP(邮件传输协议) 2.POP3(邮件接收协议) 二.基于Base64编码邮箱及授权码 1.开通QQ邮箱SMTP/POP3服务 2.Java编写BASE64编码程序 ...

  7. java网络编程(二)

    注意:架构师学习资源已更新. 获取方式:在公众号内回复"架构师资源" 文章推荐 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 1.2 网络编程技术 前面介绍 ...

  8. 【嵌入式12】DMA通信原理及编程实验,DMA方式向上位机连续发送数据

    本文介绍DMS通信原理,STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据. 一.DMA介绍 什么是DMA? DMA介绍 DMA传输方式 DMA传输参数 DMA数据传输的 ...

  9. 【Java】 Java网络编程总结

     一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...

最新文章

  1. 10个迷惑新手的Cocoa,Objective-C开发难点和问题
  2. 卷积神经网络(CNN)_相关知识
  3. 浙江、江苏推动企业上云 瞄准人工智能的工业效益
  4. Reactive Extensions入门(5):ReactiveUI MVVM框架
  5. boost::lexical_cast
  6. TCP三次握手抓包观察实战篇
  7. 电脑计算机无法安3.5,Windows无法安装以下功能:.NET Framework 3.5(包括 .NET 2.0 和 3.0)解决方法...
  8. linux内核源码目录结构
  9. 安卓bochs模拟linux_bochs linux镜像下载|bochs模拟器linux镜像下载 v1.0完整版_星星软件园...
  10. Word页码从任意指定页开始设置
  11. pandas groupby 数据丢失问题
  12. iphone12文件管理连接服务器,iPhone手机打开服务器功能,和Windows电脑互传文件方法...
  13. 大都会人寿线下培训第九天-通关了
  14. Java文件读操作(两种read方法)
  15. 从实战学习微信小程序-电商星星评分功能(五)
  16. 电脑桌面云便签怎么设置短信提醒便签事项?
  17. vba遍历字符串_VBA7种文档遍历法
  18. 作为程序员创业者,来谈一下“老罗与王自如对战”
  19. 2022年度湖北省科技创新人才及服务专项软科学研究项目申报条件、流程和项目类别
  20. 治理“假货之都”需要大数据打假

热门文章

  1. 光电子学行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  2. SSM-项目环境搭建_以及逆向工程mbg的使用
  3. 2021年中关村科技信贷和融资租赁支持资金申报条件及征集要求,补贴100万
  4. win10下pip配置国内源
  5. rapidjson 遇到的吭
  6. 职业规划 (很不错的文章)
  7. 二次回路接地故障处理
  8. 变配电所二次系统理论基础及教学实训QY-GC02
  9. SOA(Service-Oriented Architecture)面向服务的分布式架构详解
  10. bootstrap-table插件