



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 3884.4-2025铜精矿化学分析方法第4部分:铅、锌、镉、镍和氧化镁含量的测定火焰原子吸收光谱法
- 2025江苏连云港市灌云县招聘社区工作者20人备考考试题库附答案解析
- 2025年彭州市教育系统“蓉漂人才荟”赴外公招(32人)笔试备考题库及答案解析
- 2025福建海峡人力资源股份有限公司平潭分公司第六批招聘1人备考考试题库附答案解析
- 2025四川成都市第八人民医院下半年编外招聘52人备考考试题库附答案解析
- 2025年宣城绩溪县开源建设投资发展有限公司公开招聘7名备考考试题库附答案解析
- 2025重庆武隆区事业单位考核招聘21人备考考试题库附答案解析
- 2025广东工业大学管理学院国际合作与认证中心招聘1人备考考试题库附答案解析
- 掌握游戏行业新角色
- 静脉血栓风险评估
- DL∕T 2528-2022 电力储能基本术语
- 挂靠协议书范本
- 03-03-ZQZ-CY型便携式自动气象站用户手册
- 2024年云南省中考数学试题(含答案)
- 谐波齿轮减速器选型资料-图文
- 藏文基础教你轻轻松松学藏语-知到答案、智慧树答案
- 大冶市大垴山金矿千家湾矿区铜矿矿产资源开发利用与生态复绿方案
- 试运行专项方案模板
- 3d打印实训小结
- 心内科科室运营分析报告
- 《统计学-基于Python》 课件 第7章 假设检验(Python-1)
评论
0/150
提交评论