socket长连接客户端服务端_第1页
socket长连接客户端服务端_第2页
socket长连接客户端服务端_第3页
socket长连接客户端服务端_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论