java socket-3--多客户端与服务器的交互
来源:互联网 发布:犀牛软件版本分析 编辑:程序博客网 时间:2024/06/05 19:24
上一篇> java socket-2–即时通信
利用多线程,每当一个客户端发送一个请求过来,就使用一个子线程去处理它
不过此代码只可以做到多客户端向服务端发送信息,不能做到服务端对多客户端发送信息
客户端的代码与上篇的客户端代码一样,所以不贴出来,只贴服务端的代码
服务端
package 通信1;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class ServerThreadDemo { public static void main(String[] args){ Socket client = null; ServerSocket server = null; try { server = new ServerSocket(10007); } catch (IOException e1) { e1.printStackTrace(); } int num = 1; while(true){ try { client = server.accept(); System.out.println("客户端"+num+"已经连接"); new Thread(new ThreadServer(num, client)).start(); num++; } catch (IOException e) { e.printStackTrace(); } } }} class ThreadServer implements Runnable{ private String name; private int num; private Socket client; public ThreadServer(int num,Socket client){ this.num = num; this.client = client; } public void run(){ new Thread(new ServerReadThread1(client,num)).start(); new Thread(new ServerWriteThread1(client)).start(); }}//--------------------------------------------------------处理读操作的线程class ServerReadThread1 implements Runnable{ private Socket client = null; private int num ; public ServerReadThread1(Socket client,int num){ this.num = num; this.client = client; } public void run(){ //--------------------------------------------------接受来自客户端的信息 DataInputStream dis = null; try { while(true){ dis = new DataInputStream(client.getInputStream()); //读取客户端的信息 String inMess = dis.readUTF(); System.out.println("客户端"+num+"说:"+inMess); } } catch (IOException e) { System.out.println("失去连接"); // e.printStackTrace(); } }}//----------------------------------------------------------处理写的线程class ServerWriteThread1 implements Runnable{ private Socket client = null; public ServerWriteThread1(Socket client){ this.client = client; } public void run(){ BufferedReader in = null; DataOutputStream dos = null; try { while(true){ dos = new DataOutputStream(client.getOutputStream()); //-----------------------------------------------从键盘获得消息 in = new BufferedReader(new InputStreamReader(System.in)); String mess = in.readLine(); dos.writeUTF(mess); System.out.println("服务端:"+mess); } } catch (IOException e) { //失去连接 e.printStackTrace(); } }}
阅读全文
0 0
- java socket-3--多客户端与服务器的交互
- socket编程:服务器与客户端简单交互的例子
- java基础回顾3 Socket 一次完整的服务器客户端交互
- 客户端与服务器的交互
- Java Socket 客户端与服务器端的简单交互
- Android客户端与PC服务器通过socket进行交互实例
- Android客户端与PC服务器通过socket进行交互实例
- Android客户端与PC服务器通过socket进行交互实例
- Android客户端与PC服务器通过socket进行交互实例
- java使用多线程编程,实现socket服务器客户端交互
- Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
- Linux服务器与JAVA客户端(android)的socket通信
- java版客户端与服务器的socket通信以及上传下载
- TCP客户端与服务器的交互过程
- 实现客户端与服务器的交互
- 浏览器客户端与服务器的交互过程
- 浏览器客户端与服务器的交互过程
- 客户端与服务器接口的交互。
- RSTP,PVST,MSTP对比
- c/c++常用头文件及函数汇总
- HTML和CSS基础2
- Zxing实现二维码
- c++常用头文件
- java socket-3--多客户端与服务器的交互
- 多个session共享数据如何实现
- MacOS 开发
- LeetCode题解 week2(2)
- Spring Boot第四弹:Spring Boot之@Value和@ConfigurationProperties
- Day12 Servlet
- 文章标题
- 用C语言建立链表并进行基础操作
- Unity前期学习的内容,以及一些可能遇到的问题