编写程序实现多次通信 (socket和多线程)
来源:互联网 发布:广州淘宝培训 编辑:程序博客网 时间:2024/04/28 09:08
服务端
<span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * 服务端 * @author Administrator * */public class Server {public static void main(String[] args) throws IOException {ServerSocket server = new ServerSocket(8989);System.out.println("---------服务器已启动-------------");while(true){Socket socket = server.accept();new ThreadSocket(socket).start();//把每次侦听到的socket,传给一个专门处理socket的线程类}}}</span></span>
客户端
<span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;/** * 客户端 * @author Administrator * */public class Client {public static void main(String[] args) throws UnknownHostException, IOException {Socket socket = new Socket("localhost",8989);System.out.println("-----客户端已启动-------");new ThreadReader(socket.getInputStream()).start();new ThreadWriter(socket.getOutputStream()).start();}}</span></span>
ThreadSocket
<span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException;import java.net.Socket;/** * 服务器处理socket的线程类 * @author Administrator * */public class ThreadSocket extends Thread {private Socket socket;public ThreadSocket(Socket socket) {this.socket = socket;}@Overridepublic void run() {try {ThreadReader tr = new ThreadReader(socket.getInputStream());ThreadWriter tw = new ThreadWriter(socket.getOutputStream());tr.start();tw.start();} catch (IOException e) {e.printStackTrace();}}}</span></span>ThreadReader
<span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException;import java.io.InputStream;/** * 读取数据的线程类 * @author Administrator * */public class ThreadReader extends Thread {private InputStream is;public ThreadReader(InputStream is) {this.is = is;}@Overridepublic void run() {try {while(true){byte[] b = new byte[1024];int len = is.read(b);String s = new String(b,0,len);System.out.println(s);}} catch (IOException e) {e.printStackTrace();}finally{if(is!=null){try {is.close();} catch (IOException e) {e.printStackTrace();}}}}}</span></span>threadWriter
<span style="font-size:18px;"><span style="font-size:18px;">import java.io.IOException;import java.io.OutputStream;import java.util.Scanner;/** * 发送数据的线程类 * @author Administrator * */public class ThreadWriter extends Thread {private OutputStream os;Scanner sc;public ThreadWriter(OutputStream os) {this.os = os;this.sc = new Scanner(System.in);}@Overridepublic void run() {try {while(true){System.out.println("请发送信息:");String info = sc.next();os.write(info.getBytes());os.flush();//刷新}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(os!=null){try {os.close();} catch (IOException e) {e.printStackTrace();}}}}}</span></span>
0 0
- 编写程序实现多次通信 (socket和多线程)
- Socket通信(二)-- 多线程服务器实现
- 银行前置机程序(通信部分socket,java编写 )
- 封装C++实现Window和Linux下多线程Socket通信
- Java Socket实现基于TCP和UDP多线程通信
- Java Socket实现基于TCP和UDP多线程通信
- Java Socket实现基于TCP和UDP多线程通信
- Java Socket实现基于TCP和UDP多线程通信
- c++多线程编写网络聊天室程序(socket)
- c++多线程编写网络聊天室程序(socket)
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 利用Delphi编写Socket通信程序
- 16.11.7
- navicat 快捷键
- 对图片裁剪框架 ucrop 的二次封装的工具类,添加从图库选择和拍照获取图片,项目中可直接使用,十分便捷
- 用httpPost对JSON发送和接收的例子
- 剑指offer之链表
- 编写程序实现多次通信 (socket和多线程)
- maven工程的创建
- Spring中RedirectAttributes类的具体用法
- 一句代码搞定 Android 6.0 权限检测
- 前端优化搜索引擎的一些解决方案
- vue环境搭建
- openldap命令汇总
- iOS球形旋转动画
- C++如何修改文件中的特定行