- 浏览: 821878 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
java Socket多线程服务器源代码介绍
java Socket多线程在我们进行相关学习的时候需要注意不断出现的问题,下面我们就来看看在java Socket多线程中服务器的代码编写。
java Socket多线程需要我们不断的学习,在学习的时候我们就会发现在服务器的配置上有不少的问题。下面我们就来看看服务器源代码是如何编写的,以便大家更好的使用java Socket多线程。
1. import java.io.BufferedReader;
2. import java.io.IOException;
3. import java.io.InputStreamReader;
4. import java.io.PrintWriter;
5. import java.net.ServerSocket;
6. import java.net.Socket;
7. import java.util.ArrayList;
8. import java.util.List;
9. import java.util.concurrent.ExecutorService;
10. import java.util.concurrent.Executors;
11. public class ChatServer {
12. private static final int PORT = 1234; // 端口号
13. private static List<Socket> list = new ArrayList<Socket>();
// 保存连接对象
14. private ExecutorService exec;
15. private ServerSocket server;
16. public static void main(String[] args) {
17. new ChatServer();
18. }
19. public ChatServer() {
20. try {
21. server = new ServerSocket(PORT);
22. exec = Executors.newCachedThreadPool();
23. System.out.println(“服务器已启动!”);
24. Socket client = null;
25. while (true) {
26. client = server.accept(); // 接收客户连接
27. list.add(client);
28. exec.execute(new ChatTask(client));
29. }
30. } catch (IOException e) {
31. e.printStackTrace();
32. }
33. }
34. static class ChatTask implements Runnable {
35. private Socket socket;
36. private BufferedReader br;
37. private PrintWriter pw;
38. private String msg;
39. public ChatTask(Socket socket) throws IOException {
40. this.socket = socket;
41. br = new BufferedReader(new InputStreamReader(socket
42. .getInputStream()));
43. msg = “【” + this.socket.getInetAddress() + “】
进入聊天室!当前聊天室有【”
44. + list.size() + “】人”;
45. sendMessage();
46. }
47. public void run() {
48. try {
49. while ((msg = br.readLine()) != null) {
50. if (msg.trim().equals(“bye”)) {
51. list.remove(socket);
52. br.close();
53. pw.close();
54. msg = “【” + socket.getInetAddress() + “】
离开聊天室!当前聊天室有【”
55. + list.size() + “】人”;
56. socket.close();
57. sendMessage();
58. break;
59. } else {
60. msg = “【” + socket.getInetAddress() + “】说:” + msg;
61. sendMessage();
62. }
63. }
64. } catch (IOException e) {
65. e.printStackTrace();
66. }
67. }
68. /**
69. * 群发消息给聊天室的所有人
70. */
71. private void sendMessage() throws IOException {
72. System.out.println(msg);
73. for (Socket client : list) {
74. pw = new PrintWriter(client.getOutputStream(), true);
75. pw.println(msg);
76. }
77. }
78. }
79. }
80. import java.io.BufferedReader;
81. import java.io.InputStreamReader;
82. import java.io.PrintWriter;
83. import java.net.Socket;
84. import java.util.concurrent.ExecutorService;
85. import java.util.concurrent.Executors;
86. public class ChatClient {
87. private static final int PORT = 7891;
88. private static ExecutorService exec =
Executors.newCachedThreadPool();
89. public static void main(String[] args) throws Exception {
90. new ChatClient();
91. }
92. public ChatClient() {
93. try {
94. Socket socket = new Socket(“221.130.165.41″, PORT);
95. exec.execute(new Sender(socket));
96. System.out.println(“【” + socket.getInetAddress() + “】
您好,欢迎来到简易聊天室!”);
97. BufferedReader br = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
98. String msg;
99. while ((msg = br.readLine()) != null) {
100. System.out.println(“收到—->”+msg);
101. }
102. } catch (Exception e) {
103. }
104. }
java Socket多线程在我们进行相关学习的时候需要注意不断出现的问题,下面我们就来看看在java Socket多线程中服务器的代码编写。
java Socket多线程需要我们不断的学习,在学习的时候我们就会发现在服务器的配置上有不少的问题。下面我们就来看看服务器源代码是如何编写的,以便大家更好的使用java Socket多线程。
1. import java.io.BufferedReader;
2. import java.io.IOException;
3. import java.io.InputStreamReader;
4. import java.io.PrintWriter;
5. import java.net.ServerSocket;
6. import java.net.Socket;
7. import java.util.ArrayList;
8. import java.util.List;
9. import java.util.concurrent.ExecutorService;
10. import java.util.concurrent.Executors;
11. public class ChatServer {
12. private static final int PORT = 1234; // 端口号
13. private static List<Socket> list = new ArrayList<Socket>();
// 保存连接对象
14. private ExecutorService exec;
15. private ServerSocket server;
16. public static void main(String[] args) {
17. new ChatServer();
18. }
19. public ChatServer() {
20. try {
21. server = new ServerSocket(PORT);
22. exec = Executors.newCachedThreadPool();
23. System.out.println(“服务器已启动!”);
24. Socket client = null;
25. while (true) {
26. client = server.accept(); // 接收客户连接
27. list.add(client);
28. exec.execute(new ChatTask(client));
29. }
30. } catch (IOException e) {
31. e.printStackTrace();
32. }
33. }
34. static class ChatTask implements Runnable {
35. private Socket socket;
36. private BufferedReader br;
37. private PrintWriter pw;
38. private String msg;
39. public ChatTask(Socket socket) throws IOException {
40. this.socket = socket;
41. br = new BufferedReader(new InputStreamReader(socket
42. .getInputStream()));
43. msg = “【” + this.socket.getInetAddress() + “】
进入聊天室!当前聊天室有【”
44. + list.size() + “】人”;
45. sendMessage();
46. }
47. public void run() {
48. try {
49. while ((msg = br.readLine()) != null) {
50. if (msg.trim().equals(“bye”)) {
51. list.remove(socket);
52. br.close();
53. pw.close();
54. msg = “【” + socket.getInetAddress() + “】
离开聊天室!当前聊天室有【”
55. + list.size() + “】人”;
56. socket.close();
57. sendMessage();
58. break;
59. } else {
60. msg = “【” + socket.getInetAddress() + “】说:” + msg;
61. sendMessage();
62. }
63. }
64. } catch (IOException e) {
65. e.printStackTrace();
66. }
67. }
68. /**
69. * 群发消息给聊天室的所有人
70. */
71. private void sendMessage() throws IOException {
72. System.out.println(msg);
73. for (Socket client : list) {
74. pw = new PrintWriter(client.getOutputStream(), true);
75. pw.println(msg);
76. }
77. }
78. }
79. }
80. import java.io.BufferedReader;
81. import java.io.InputStreamReader;
82. import java.io.PrintWriter;
83. import java.net.Socket;
84. import java.util.concurrent.ExecutorService;
85. import java.util.concurrent.Executors;
86. public class ChatClient {
87. private static final int PORT = 7891;
88. private static ExecutorService exec =
Executors.newCachedThreadPool();
89. public static void main(String[] args) throws Exception {
90. new ChatClient();
91. }
92. public ChatClient() {
93. try {
94. Socket socket = new Socket(“221.130.165.41″, PORT);
95. exec.execute(new Sender(socket));
96. System.out.println(“【” + socket.getInetAddress() + “】
您好,欢迎来到简易聊天室!”);
97. BufferedReader br = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
98. String msg;
99. while ((msg = br.readLine()) != null) {
100. System.out.println(“收到—->”+msg);
101. }
102. } catch (Exception e) {
103. }
104. }
发表评论
-
Java多线程-----Socket通信
2010-08-18 17:54 1625Java多线程-----Socket通信 程序分Server ... -
Java Socket 编程——多线程网络聊天程序
2010-08-18 17:52 2296Java Socket 编程——多线 ... -
java:多线程与Socket结合的简单示例
2010-08-18 17:47 1234java:多线程与Socket结合 ... -
多线程和Socket结合使用的例子
2010-08-18 17:45 1210多线程Java Socket编程示例 这篇做为学习孙卫琴&l ... -
Java与Socket
2010-08-18 17:44 912Java基于Socket文件传输 ...
相关推荐
### Java Socket多线程服务器源代码介绍 #### 一、Java Socket基础知识 在开始之前,我们先了解一下Java Socket的基本概念。Socket是一种用于网络通信的技术,它允许不同计算机上的应用程序通过网络进行通信。Java...
要查看具体的代码实现,你需要检查`src`目录下的文件,通常在`java`或`src/main/java`这样的路径下,找到相关的类文件,比如`ServerSocketThread.java`或其他类似的名字,那里会有实现多线程服务器的代码。
在Java编程领域,Socket通信是网络编程的基础,用于实现客户端与...通过深入理解和实践这个Java Socket多线程服务器程序,开发者可以提升其在网络编程和并发处理方面的技能,为构建更复杂、高性能的网络应用奠定基础。
在Java编程领域,多线程和Socket通信是两个重要的概念,...总之,这个基于Java的多线程Socket聊天室源代码是学习网络编程和并发处理的好例子,它展示了如何使用Java的基本工具来创建一个基本但功能完整的网络应用程序。
"Java Socket传输图片源代码"这个主题涵盖了以下几个关键知识点: 1. **Java Socket基础**: - Socket是TCP/IP协议族的一部分,用于在网络应用程序之间建立双向通信通道。Java的`java.net.Socket`类和`...
java基于socket聊天室源代码.rar 注:供java socket编程的初学者学习使用,严禁用作作业抄袭和商业用途。若转载源代码,请注明原作者以及作者的博客地址。 项目名称:TCPChatRoomServer(服务器端),...
这个Java Socket实现的多人聊天源代码实例,对于初学者来说,是一个很好的学习资源,它涵盖了网络编程的基础知识,如TCP连接、多线程以及数据传输。通过分析和理解这个源代码,开发者可以更好地掌握Java网络编程,并...
学习这个示例,我们可以掌握如何在Java中编写TCP Socket程序,包括创建服务器端的`ServerSocket`,接受客户端连接,创建客户端的`Socket`,以及在多线程环境下处理并发连接。此外,还能了解如何使用Java的IO或NIO...
7. **多线程**:Java内置了对多线程的支持,通过`Thread`类或实现`Runnable`接口可以创建并运行线程,实现并发执行。 8. **网络编程**:Java提供了丰富的网络编程API,如Socket和ServerSocket类,用于创建客户端和...
总结来说,这个“socket简单示例JAVA源代码”可能会包含上述过程的简化版,展示了Java中如何使用Socket进行基本的客户端-服务器通信。它对于理解网络编程的基础概念非常有用,同时也可以作为进一步复杂网络应用开发...
Java编程语言在开发多线程聊天程序中扮演着核心角色,尤其当结合Socket通信和图形用户界面(GUI)时,可以构建出实时、交互式的聊天应用。本项目以"用java写的多线程聊天程序GUI界面socket实现"为主题,旨在展示如何...
标题中的“socket做的支持多线程断点上传or断点续传Java源码”涉及到的是在网络编程中,如何使用Java的Socket API实现一个能够处理断点上传和断点续传功能的服务。这是一个高级的网络编程任务,通常在大型文件传输...
综上所述,这个上机实验旨在让学生掌握Java中实现客户端-服务器通信、构建多线程服务器以及利用RMI进行远程调用的关键技能。通过实践,学生将能够理解这些核心概念,并能够在实际项目中应用。文件列表中的"客户端...
以下是关于Android与PC机Socket多线程通信的关键知识点: 1. **Socket基础**:Socket是网络通信中的一个概念,它代表了两台机器间的一个连接端点,允许数据在网络中传输。在Java中,Socket类和ServerSocket类提供了...
总结来说,Java Socket编程在实现多人聊天室这样的应用场景中,通过创建ServerSocket监听客户端连接,使用Socket进行数据交换,配合多线程技术处理并发通信,以及合理的数据传输格式和错误处理策略,可以构建出稳定...
下面将详细介绍Java Socket编程的基本概念、使用方法以及源代码分析。 **1. Java Socket基础** Java Socket基于TCP/IP协议,提供了可靠的、面向连接的数据传输服务。Socket连接建立的过程分为三个步骤:(1)...
在这个场景中,我们有两个文件:`socket_client.java` 和 `socket_server.java`,分别代表客户端和服务端的源代码。接下来,我们将深入探讨Socket通信的基本概念、工作原理以及如何在Java中实现客户端和服务端的代码...
### Socket聊天程序Java源代码解析 #### 一、概述 本篇内容主要解析一个基于Java语言编写的简单Socket聊天程序的源代码。该程序由客户端和服务端两部分组成,通过Socket进行通信,实现基本的文本消息传递功能。...
在这个“基于Java Socket编程的局域网聊天程序源代码”项目中,我们可以学习到如何构建一个简单的聊天应用程序,使得在同一局域网内的用户可以相互通信。以下是关于Java Socket编程的一些核心知识点和在该源代码中...
源代码通常会包含以下部分: - 客户端代码:创建Socket,打开输入/输出流,发送数据,接收数据,然后关闭连接。 - 服务器端代码:创建ServerSocket,监听连接,对每个连接创建新的线程处理,读取客户端数据并响应,...