



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package com.socket; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Reader; import .Socket; import java.nio.CharBuffer; /* * Socket 长连接 客户端 */ public class Client03 private String host = ““; private int port = 5055; /* * 数据发送线程 */ class SendThread implements Runnable private Socket socket; public SendThread(Socket socket) this.socket = socket; public void run() while (true) try PrintWriter pw = new PrintWriter(new OutputStreamWriter( socket.getOutputStream(); pw.write(“this is client“); pw.flush(); Thread.sleep(2000); catch (Exception e) e.printStackTrace(); /* * 数据接收线程 */ class ReceiveThread implements Runnable private Socket socket; public ReceiveThread(Socket socket) this.socket = socket; public void run() while (true) try Reader reader = new InputStreamReader( socket.getInputStream(); CharBuffer charBuffer = CharBuffer.allocate(8192); SuppressWarnings(“unused“) int charIndex = -1; while (charIndex = reader.read(charBuffer) != -1) charBuffer.flip(); System.out .println(“client “ + charBuffer.toString(); catch (IOException e) e.printStackTrace(); private void start() try Socket socket = new Socket(host, port);/ 创建 Socket new Thread(new SendThread(socket).start();/ 启动读线程 new Thread(new ReceiveThread(socket).start();/ 启动收线程 catch (Exception e) e.printStackTrace(); public static void main(String args) new Client03().start(); package com.socket; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import .ServerSocket; import .Socket; import java.nio.CharBuffer; /* * Socket 长连接 服务端 */ public class Server03 private ServerSocket serverSocket; private Socket socket; private int port = 5055; private void start() throws Exception serverSocket = new ServerSocket(port); while (true) socket = serverSocket.accept(); new Thread(new SocketThread(socket).start();/ 多线程阻塞 /* * 处理 socket 连接 s */ class SocketThread implements Runnable private Socket socket; private String temp = “; public SocketThread(Socket socket) this.socket = socket; SuppressWarnings(“unused“) public void run() try Reader reader = new InputStreamReader(socket.getInputStream(); Writer writer = new OutputStreamWriter(socket.getOutputStream(); CharBuffer charBuffer = CharBuffer.allocate(1024); int readIndex = -1; while (readIndex = reader.read(charBuffer) != -1) charBuffer.flip(); temp += charBuffer.toString(); System.out.println(“server“ + temp); writer.write(“this is server“); writer.flush(); catch (IOException e) e.printStackTrace(); finally if (socket != null) if (!socket.isClosed() try socket.close(); catch (IOException e)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗安全与风险管理的法规遵循与执行
- 复杂性区域疼痛综合征的临床护理
- 兴唐镇中心小学2025年教科研工作总结模版
- 实习总结模版
- 医疗大数据挖掘与健康教育新模式
- 2025年会计基础知识点总结模版
- 医技新风医疗技术与健康科学的深度融合发展探讨
- 区块链教育培养未来技术领导者
- 中药材产业中质量追溯体系的构建与优化-基于区块链技术的研究
- 医疗信息安全的国际比较与借鉴
- 彩钢板屋面监理细则
- 文艺复兴史学习通超星课后章节答案期末考试题库2023年
- 《BIM技术概论》期末试卷及答案2套
- 城市设计原理-西安建筑科技大学中国大学mooc课后章节答案期末考试题库2023年
- 初中生物理自主学习能力现状的调查研究的开题报告
- 委派合同范本
- 嵩县天运矿业有限责任公司石盘沟金矿矿山地质环境保护与土地复垦方案
- 丝路神话-“一带一路”沿线古今漫谈知到章节答案智慧树2023年黑龙江林业职业技术学院
- 乡村规划与设计教材课件
- 2023年高考-汉语文试卷及答案
- 【小区植物配置情况调研分析8500字(论文)】
评论
0/150
提交评论