上次做了一个java socket一对一通信的例子这次来写一个一对多的通信,这里我们使用java的多线程来实现
首先来看一下服务类
- /**
- *
- */
- package com.dnion.socket;
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- /**
- ***************************************************************
- * 项目名称:JavaThread
- * 程序名称:MultiJabberServer
- * 日期:2012-8-23 下午02:38:20
- * 作者:
- * 模块:
- * 描述:
- * 备注:
- * ------------------------------------------------------------
- * 修改历史
- * 序号 日期 修改人 修改原因
- *
- * 修改备注:
- * @version
- ***************************************************************
- */
- public class MultiJabberServer {
- /**
- * 方法名:main
- * 描述:
- * 作者:
- * 日期:2012-8-23 下午02:38:20
- * @param @param args
- * @return void
- */
- public static void main(String[] args) {
- ServerSocket s = null;
- Socket socket = null;
- try {
- s = new ServerSocket(8080);
- //等待新请求、否则一直阻塞
- while(true){
- socket = s.accept();
- System.out.println("socket:"+socket);
- new ServeOneJabbr(socket);
- }
- } catch (Exception e) {
- try {
- socket.close();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }finally{
- try {
- s.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
接着我们要写一个服务端响应请求的类也就是一个socket
- /**
- *
- */
- package com.dnion.socket;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.Socket;
- /**
- ***************************************************************
- * 项目名称:JavaThread
- * 程序名称:ServeOneJabbr
- * 日期:2012-8-23 下午02:34:13
- * 作者:
- * 模块:
- * 描述:
- * 备注:
- * ------------------------------------------------------------
- * 修改历史
- * 序号 日期 修改人 修改原因
- *
- * 修改备注:
- * @version
- ***************************************************************
- */
- public class ServeOneJabbr extends Thread{
- private Socket socket = null;
- private BufferedReader br = null;
- private PrintWriter pw = null;
- public ServeOneJabbr(Socket s){
- socket = s;
- try {
- br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
- start();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void run() {
- while(true){
- String str;
- try {
- str = br.readLine();
- if(str.equals("END")){
- br.close();
- pw.close();
- socket.close();
- break;
- }
- System.out.println("Client Socket Message:"+str);
- pw.println("Message Received");
- pw.flush();
- } catch (Exception e) {
- try {
- br.close();
- pw.close();
- socket.close();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
- }
- }
接下来利用我们上一次的客户端socket
这样一个简单地多客户端响应socket就成了
每次有一个请求发送过来服务端都会新建一个线程来单独服务。
相关推荐
java socket教程java socket教程java socket教程
JAVA Socket教程 Java网络编程之传输控制协议 Socket套接字—Java套接字编程
java socket client 断线重连的简单实现 有什么意见可以提哦
Java Socket 聊天通信演示代码 Java Socket 聊天通信演示代码
java socket使用加密协议传输对象
java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料java socket 学习资料
java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析
Java Socket编程.pdf Java Socket编程.pdf Java Socket编程.pdf
1. 满足具有Socket客户端需求的基本应用. 2. 满足具有Socket服务端的基本应用. 具备并发能力, 能满足可设定个数客户端连接. 参考个人博客: http://blog.csdn.net/ostrichmyself/article/details/6618349
Java Socket 操作 Demo import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.BufferedReader; import ...
java socket USB和 串口通讯,使用java程序与硬件通讯的三种方式。
java socket处理硬件传过来的16进制数据的工具类,包含大小端转换、byte[]数组转换为16进制的字符串、byte[]转ByteBuffer、16进制字符串转换为byte数组等
Java 基于socket聊天室客户端的代码
java socket nginx tcp转发 用户真实IP测试,文章请看我的博客
NULL 博文链接:https://antjava.iteye.com/blog/679695
java socket 聊天系统 java传输文件 多线程聊天系统
用JAVA实现的文件上传,控制台输入,保存到数据库
基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java ...
java Socket 编程配套源码
SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...