1、使用byte数组传输

client:

public static void test(){
Socket socket = null;
BufferedReader br = null;
PrintWriter pw = null;
try {
// 客户端socket指定服务器的地址和端口号
socket = new Socket("127.0.0.1", 7890);
System.out.println("Socket=" + socket);
// 向SG186系统发送请求报文
OutputStream stream = socket.getOutputStream();
//pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
String requestmsg = "SG186,nihaoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
ByteBuffer byteBuffer = ByteBuffer.allocate(requestmsg.length());
byteBuffer.put(requestmsg.getBytes());
byteBuffer.flip();
System.out.println("byteBuffer:"+byteBuffer);
//pw.println(byteBuffer.array());
stream.write(byteBuffer.array());
stream.flush();
// 读取SG186系统发送的响应报文
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
StringBuffer buffer = new StringBuffer();
String str;
while ((str = br.readLine()) != null) {
buffer.append(str);
}
System.out.println("api缴费方法中接收到SG186系统的响应报文是:" + buffer.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
System.out.println("close......");
// br.close();
// pw.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

server段:

public static void test2() {
ServerSocket s = null;
Socket socket = null;
PrintWriter pw = null;
try {
// 设定服务端的端口号
s = new ServerSocket(7890);
System.out.println("ServerSocket Start:" + s);
// 等待请求,此方法会一直阻塞,直到获得请求才往下走
socket = s.accept();
System.out.println("Connection accept socket:" + socket);
// 用于接收客户端发来的请求
InputStream stream = socket.getInputStream();
byte[] bytes =new byte[1024];
stream.read(bytes);//写入byte数组中。再依次读取出来即可。

String str = new String(bytes,0,bytes.length);
System.out.println("服务端接收到客户端发送的请求报文:" + str);
// 用于发送返回信息,可以不需要装饰这么多io流使用缓冲流时发送数据要注意调用.flush()方法
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
Thread.sleep(1000);
String responseStr = "00061000|白仁路|永新北台|2340905|.51|99361410|140.95|140.95|0|0|0|";
pw.println(responseStr);
pw.flush();
// }

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("Close.....");
try {
pw.close();
socket.close();
s.close();
} catch (Exception e2) {

}
}

socket 中使用byte数组或者是字符流传输数据相关推荐

  1. java中定义byte数组,浅谈java的byte数组的不同写法

    (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"byte数组"里面全部是&qu ...

  2. Java18-day09【字节缓冲流、字符流、编码表、字符串与字符流中的编码解码问题、字符流读写数据的方式、字符缓冲流、IO流小结】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  3. 一文读懂Java中File类、字节流、字符流、转换流

    一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...

  4. 一串字符串转换为ascii_将ASCII字符串(char [])转换为C中的BYTE数组

    一串字符串转换为ascii Given an ASCII string (char[]) and we have to convert it into BYTE array (BYTE[]) in C ...

  5. java 打印byte数组内容_java中打印byte数组

    JAVA字节转换 字节(Byte)简称:"B",字位(Bit)简称"b", 1 个字位(Bit)=1 个二进制数, 1 个字节=8 个字位=8 个二进制数, 1 ...

  6. java byte reader_Java字节流与字符流

    九.字节流与字符流 9.1 IO的分类 根据数据的流向分为:输入流和输出流. 输入流 :把数据从其他设备上读取到内存中的流. 输出流 :把数据从内存 中写出到其他设备上的流. 数据的类型分为:字节流和 ...

  7. 【Java-IO】File、搜索删除剪切、字符集、字符编码、字节流、将内存中的数据写入文件、字符流、缓冲流、Scanner、格式化输出、数据流、对象流、序列化与反序列化、Files工具类

    IO 文章目录 IO 简介 File 分隔符.大小写 常用方法 练习:搜索.删除.剪切 字符集(Character Set) 字符编码(Character Encoding) 字符编码比较 乱码 字节 ...

  8. 复习笔记13 字符流与字节流

    1 标准输入输出流&转换流&打印流 1.1 标准输入输出流 public static final InputStream in:标准输入流 ,用来读取键盘录入的数据 public s ...

  9. Byte和byte[]数组

    Byte和byte[]数组,"表示一个 8 位无符号整数, 一般为8位二进制数". Byte是计算机最基础的存储单位和最基础的通讯单位. 而所有的类型都是支持由byte[]类型转换 ...

最新文章

  1. 【web】从数据库读取多条数据到前台
  2. ActionContext_、ValueStack、Stack_Context关系
  3. 一款基于jQuery外观优雅带遮罩弹出层对话框
  4. inavFilter 惯导融合算法
  5. 在Linux下编写C程序,怎么检查程序是否有内存泄漏?
  6. 接口和抽象类是否继承了Object
  7. win7电脑删除文件特别慢怎么办
  8. PHP5时间相差八小时问题[三种方法]
  9. 计算机博士后流动站有哪些,全国博士后流动站一览表.docx
  10. 程序员2线城市月薪25k,父母让他去北京一家16K国企,网友:去啊
  11. debian 系统配置网易镜像源
  12. centos7安装bbr_Centos7下,BBR修正版 一键安装与使用
  13. 如何使诺机亚手机显示中文电话簿
  14. AD 画PCB 布线时,连线就变绿
  15. 数模电路基础知识 —— 5. 常见电路符号说明(三极管)
  16. 用 vs 跑 lvgl 模拟器
  17. 西工大计算机考研最全的报名和各方向解析,含导师介绍
  18. 孙溟㠭先生书画艺术《贵妃》
  19. RK3288 android 5.1 HDMI 喇叭同时输出声音
  20. 笔试总结——0310华为软笔C++

热门文章

  1. 矩阵加法减法乘法计算
  2. 黑客基地攻防特训班教程
  3. monkey测试入门2--测试步骤、常用参数、常规monkey命令
  4. 怎么进行免费流程图制作?不妨试试这些软件
  5. 踩坑,String index out of range: -1,MultipartFile中getOriginalFilename()和getName方法
  6. java基础知识之FileInputStream流
  7. android游戏手柄问题
  8. 【二】2D测量 Metrology——set_metrology_model_param()算子
  9. 软件工程作业 案例分析
  10. 手把手教你搭建私有云盘(发车啦)