import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; /** * 服务端 * 需求:多个客户端连接同一个服务端 * @author Sam * */ public class MultipleServer { /** 编码 */ public static final String ENCODING = "UTF-8"; /** * @param args */ public static void main(String[] args) { try { // 创建一个服务端ServerSocket,监听指定端口的请求 ServerSocket ss = new ServerSocket(10000); System.out.println("Server 等待客户端接入..."); while (true) { // 一直循环监听客户端请求 Socket socket = ss.accept(); // 开启一个新线程处理Socket请求 new Thread(new AsynSocketTask(socket)).start(); } } catch (IOException e) { e.printStackTrace(); } } /** * 用于处理Socket请求的任务类 * */ static class AsynSocketTask implements Runnable { private Socket socket; private BufferedReader buffReader; private BufferedWriter buffWriter; public AsynSocketTask(Socket socket) { try { this.socket = socket; // 获取Socket中的输入输出流,并使用带缓冲区的字符流 buffReader = new BufferedReader( new InputStreamReader(socket.getInputStream(), ENCODING)); buffWriter = new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(), ENCODING)); } catch (IOException e) { e.printStackTrace(); } } @Override public void run() { handleSocketRequest(); } /** * 处理客户端请求 */ private void handleSocketRequest() { try { //////////////// 读操作 ////////////////// // 获取客户端数据 String line = null; StringBuilder sBuilder = new StringBuilder(); // 一行一行的读 while ( (line=buffReader.readLine()) != null ) { if (line.indexOf("eof") != -1) {// 读到结束标记,则跳出循环 break; } sBuilder.append(line); } System.out.println("Server 来自客户端的数据:"+ sBuilder.toString()); //////////////// 写操作 ////////////////// // 读完之后,往客户端写一句 buffWriter.write("Hello Client!"); buffWriter.newLine();// 写一个换行符 buffWriter.write("eof");// 写一个结束标记符 buffWriter.newLine(); buffWriter.close();// 关闭该流的同时,也会释放与之关联的所有资源 buffReader.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; /** * 客户端 * @author Sam * */ public class MultipleClient { /** 编码 */ public static final String ENCODING = "UTF-8"; /** * @param args */ public static void main(String[] args) { try { // 与服务端建立连接(服务端主机号,服务端监听的端口号) Socket socket = new Socket("127.0.0.1" , 10000); // 获取Socket中的输入输出流,并使用带缓冲区的字符流 BufferedWriter buffWriter = new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(), ENCODING)); BufferedReader buffReader = new BufferedReader( new InputStreamReader(socket.getInputStream(), ENCODING)); /////////////// 写操作 /////////////// // 往服务端写数据 buffWriter.write("Hello Server!"); buffWriter.newLine();// 写一个换行符 buffWriter.write("eof");// 写一个结束标记符 buffWriter.newLine(); buffWriter.flush(); /////////////// 读操作 /////////////// // 写完之后,读取服务端返回的数据 socket.setSoTimeout(10*1000);// 设置超时时长10秒 String line = null; StringBuilder sBuilder = new StringBuilder(); // 一行一行的读 while ( (line=buffReader.readLine()) != null ) { if (line.indexOf("eof") != -1) {// 读到结束标记,则跳出循环 break; } sBuilder.append(line); } buffWriter.close(); buffReader.close(); socket.close(); System.out.println("Client 来自服务端的数据:" + sBuilder.toString()); } catch (IOException e) { e.printStackTrace(); } } }
您还没有登录,请您登录后再发表评论
《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java TCP/IP Socket编程(原书第2版)》内容简明扼要,条理清晰,并在讲解相应的概念或编程...
1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 JAVA与WEB 2.1 JMX规范 2.1.1 JMX概述 2.1.2 设备层(Instrumentation Level) 2.1.3 代理层 2.1.4 分布服务层 ...
第5章 Java Servlet中的网络编程 5. 1 Java套接字网络编程 5. 1. 1 InetAddress类 5. 1. 2 Socket类 5. 1. 3 给手机发送网上短信息 5. 2 Java网络编程中的高层类 5. 2. 1 URL类 5. 2. 2 URLConnection类 第6...
使用 JAVA 进行Socket编程,该书深入讨论了Socket编程及其在网络通信,多任务处理中的应用。
通过java网络编程深入理解socket阻塞通信和非阻塞通信的在网络中的应用 源码包每一行都有注释,在代码里面每一个类都有详细的注释来解释这个类的功能这个方法的功能,调用哪一个类的哪一个功能等等。 压缩包包含实验...
JAVA SOCKET 编程的经典之书,(中文版)里面的代码可直接复制使用! 目录: 第1章简介..........3 1.1 计算机网络,分组报文和协议..........3 1.2 关于地址..........6 1.3 关于名字..........8 1.4 客户端...
用途: 学习Java中的类的概念和使用,深入理解面向对象编程。 实验三: 关键词: 异常处理机制与数据流 内容关键词: 异常处理,数据流,Java实验 用途: 掌握Java中的异常处理机制和数据流操作,提高代码的稳定性和可靠...
深入阐述了java socket编程技术
0007--Java网络编程之socket.zip ├─0008--Maven.zip ├─0009--Web开发入门.zip ├─0010--深入理解Servlet.zip ├─0011--Session与Cokile实现原理.zip ├─0012--深入理解Http协议.zip ├─0013--Mybatis.zip ├...
4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发。 5、使用C/S架构,对网络编程有一定的了解 二.项目概述 运用java程序编写聊天室,实现简单的聊天功能。它是...
3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的,如果你想学习Java可以来这个群,首先是五三二...
Java网络编程:介绍Java中的网络编程相关知识,包括Socket编程、HTTP协议、TCP/IP等,帮助读者理解和应用网络编程技术。 Java框架和工具:介绍常用的Java开发框架和工具,如Spring、MyBatis、Maven等,帮助读者提高...
**JAVA基于局域网的聊天室系统** 本资源提供了一套完整的基于Java实现的局域网聊天...通过学习和实践,您可以深入了解Java Socket编程原理,掌握局域网通信的核心技术,并能够根据实际需求对系统进行二次开发和定制。
上架时间:2010-3-30 出版日期:2010 年3月 开本:16开 其他详细信息查看:http://www.china-pub.com/196571 编辑推荐 Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,...
Java TCP_IP Socket编程(2版), 深入理解Java虚拟机(第2版), 机器学习实践指南:案例应用解析(第2版) 非常建议平时多读读前两本书,虽然它们是最短的,确实最有用的,阿里的建议还是很给力的,会少踩很多的坑的...
Java精华学习资料 深入JAVA API 深入理解嵌套类和内部类 文件和流 java中的一些常用词汇 J2SE学习中的30个基本概念 ...Java Socket编程 Java的内存泄漏 抽象类与接口的区别 Java变量类型间的相互转换 ……
相关推荐
《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java TCP/IP Socket编程(原书第2版)》内容简明扼要,条理清晰,并在讲解相应的概念或编程...
《Java TCP/IP Socket编程(原书第2版)》基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。《Java TCP/IP Socket编程(原书第2版)》内容简明扼要,条理清晰,并在讲解相应的概念或编程...
1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 JAVA与WEB 2.1 JMX规范 2.1.1 JMX概述 2.1.2 设备层(Instrumentation Level) 2.1.3 代理层 2.1.4 分布服务层 ...
第5章 Java Servlet中的网络编程 5. 1 Java套接字网络编程 5. 1. 1 InetAddress类 5. 1. 2 Socket类 5. 1. 3 给手机发送网上短信息 5. 2 Java网络编程中的高层类 5. 2. 1 URL类 5. 2. 2 URLConnection类 第6...
使用 JAVA 进行Socket编程,该书深入讨论了Socket编程及其在网络通信,多任务处理中的应用。
通过java网络编程深入理解socket阻塞通信和非阻塞通信的在网络中的应用 源码包每一行都有注释,在代码里面每一个类都有详细的注释来解释这个类的功能这个方法的功能,调用哪一个类的哪一个功能等等。 压缩包包含实验...
JAVA SOCKET 编程的经典之书,(中文版)里面的代码可直接复制使用! 目录: 第1章简介..........3 1.1 计算机网络,分组报文和协议..........3 1.2 关于地址..........6 1.3 关于名字..........8 1.4 客户端...
用途: 学习Java中的类的概念和使用,深入理解面向对象编程。 实验三: 关键词: 异常处理机制与数据流 内容关键词: 异常处理,数据流,Java实验 用途: 掌握Java中的异常处理机制和数据流操作,提高代码的稳定性和可靠...
深入阐述了java socket编程技术
0007--Java网络编程之socket.zip ├─0008--Maven.zip ├─0009--Web开发入门.zip ├─0010--深入理解Servlet.zip ├─0011--Session与Cokile实现原理.zip ├─0012--深入理解Http协议.zip ├─0013--Mybatis.zip ├...
4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发。 5、使用C/S架构,对网络编程有一定的了解 二.项目概述 运用java程序编写聊天室,实现简单的聊天功能。它是...
3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的,如果你想学习Java可以来这个群,首先是五三二...
Java网络编程:介绍Java中的网络编程相关知识,包括Socket编程、HTTP协议、TCP/IP等,帮助读者理解和应用网络编程技术。 Java框架和工具:介绍常用的Java开发框架和工具,如Spring、MyBatis、Maven等,帮助读者提高...
**JAVA基于局域网的聊天室系统** 本资源提供了一套完整的基于Java实现的局域网聊天...通过学习和实践,您可以深入了解Java Socket编程原理,掌握局域网通信的核心技术,并能够根据实际需求对系统进行二次开发和定制。
上架时间:2010-3-30 出版日期:2010 年3月 开本:16开 其他详细信息查看:http://www.china-pub.com/196571 编辑推荐 Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,...
Java TCP_IP Socket编程(2版), 深入理解Java虚拟机(第2版), 机器学习实践指南:案例应用解析(第2版) 非常建议平时多读读前两本书,虽然它们是最短的,确实最有用的,阿里的建议还是很给力的,会少踩很多的坑的...
Java精华学习资料 深入JAVA API 深入理解嵌套类和内部类 文件和流 java中的一些常用词汇 J2SE学习中的30个基本概念 ...Java Socket编程 Java的内存泄漏 抽象类与接口的区别 Java变量类型间的相互转换 ……