- 浏览: 227890 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (244)
- java (23)
- java多线程 (7)
- 综合 (1)
- oracle10g (24)
- div+css (1)
- Flex (27)
- java Nio (1)
- java设计模式 (8)
- struts2 (10)
- spring3.0 (5)
- SSH (9)
- dwr (5)
- hibernate3.6 (17)
- dom4j (1)
- sql优化 (5)
- Quartz任务调度框架 (1)
- AOP (3)
- JavaScript (18)
- jquery (3)
- JSF (9)
- ruby (1)
- 正则表达式 (1)
- 明日准备 (2)
- eclipse (3)
- gvim (1)
- CMS (1)
- linux (6)
- 杂 (4)
- java 设计模式 (1)
- MySql (10)
- JBPM (4)
- JSP技术 (1)
- Mybatis And Ibatis (2)
- 经验之谈 (10)
- WebService (1)
- java分布式(高性能,高可用,可伸缩) (0)
- springMvc (2)
- redis (0)
- ant (1)
- Nutz (6)
- 配置管理 (0)
- css+div (1)
- eChars (1)
- angularJs (1)
- D3 (3)
- Scala (1)
最新评论
-
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
有个小失误,144和147行多了两个花括号
js面向对象2--js中工厂模式的演化(重要,详细) -
Cobain_LI:
学习了,之前一直都没注意到有这样的问题
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
YTT1121:
有网络拓扑发现的源代码么,或者您会编写么?可以有偿求购,搞科研 ...
flex 之twaver1--简单网络拓扑实现
1,服务端不断轮训创建socket链接,一旦链接成功,启动两个服务端进程,处理服务端的不断接受、和不断发送。
2,发送线程(服务端、客户端的发送)都调用这个
3,接受线程(服务端、客户端的发送)都使用这个
4,客户端接受线程
5,测试步骤:
先打开服务端
再打开客户端
即可进行即时通讯。
package com.supan; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws Exception { ServerSocket server=new ServerSocket(4704); while(true){ Socket socket=server.accept(); if(socket!=null){ System.out.println("客户端已经连接,服务器开启线程处理这个连接。"); new SendThread(socket).start(); new RecevidThread(socket).start(); } } } }
2,发送线程(服务端、客户端的发送)都调用这个
package com.supan; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /* * 该类主要用于服务端接受本地系统的输入数据,并且发松到客户端 */ public class SendThread extends Thread { private Socket socket; private String line; private BufferedReader is; private PrintWriter os; public SendThread(Socket socket) { this.socket = socket; } public void run() { try { BufferedReader sin = new BufferedReader(new InputStreamReader(System.in)); os = new PrintWriter(socket.getOutputStream()); while (true) { line = sin.readLine(); // 把系统输入的数据放入到socket的输出流中 os.println(line); os.flush(); // 读取socket的输入流并打印出来 } } catch (Exception e) { System.out.println("系统输入数据,和客户端输入数据时出现异常"); } } }
3,接受线程(服务端、客户端的发送)都使用这个
package com.supan; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /* * 该类主要负责不停的读取客户端传过来的数据,并打印到控制台 */ public class RecevidThread extends Thread { private Socket socket; private String line; private BufferedReader is; private PrintWriter os; public RecevidThread(Socket socket) { this.socket = socket; } public void run() { // 获取socket的输入流 try { is = new BufferedReader(new InputStreamReader( socket.getInputStream())); while (true) { System.out.println("客户端传过来的数据是:" + is.readLine()); } } catch (Exception e) { System.out.println("系统输入数据,和客户端输入数据时出现异常"); } } }
4,客户端接受线程
package com.supan; import java.net.Socket; public class Client { public static void main(String[] args) throws Exception { Socket socket=new Socket("localhost",4704); if(socket!=null){ new SendThread(socket).start(); new RecevidThread(socket).start(); } } }
5,测试步骤:
先打开服务端
再打开客户端
即可进行即时通讯。
发表评论
-
浅谈java接口中定义属性
2015-03-11 22:55 7028package com.supan.reflact; p ... -
JMs 简单实例
2015-01-30 14:00 5561.前一讲简单的介绍了 ... -
java 泛型
2015-01-29 14:04 6051. 概述 在引入范型之前 ... -
配置jkstatus
2015-01-24 00:21 650在已配置完成的 apache 项目中 workers.pro ... -
apache+tomcat架设图片服务器
2015-01-23 22:15 1171apache + 2个tomcat分工指定: apac ... -
apache+tomcat实现负载均衡
2015-01-23 13:03 464所需材料: 1,apache_2.0.55-win32-x86 ... -
java web高并发解决方案
2015-01-23 01:28 896java处理高并发高负载类 ... -
java 实现简单及时通讯工具
2014-12-07 16:52 743客户端接受: package com.supan; i ... -
sql 语句优化
2014-12-03 23:50 501一: 尽量挑选自己需要的字段进行查询, 不要随便使用 s ... -
21312
2014-06-30 23:53 602http://supanccy2013.iteye.com/a ... -
java之jxl输入excel文件
2014-05-02 23:37 981注:原创作品,分享以供交流,转载请注明出处。 本博文需要引入 ... -
java虚拟机工作机制
2014-05-02 23:33 938注:原创作品,分享以供交流学习,转载请注明出处。 Java虚 ... -
java算法之 递归
2014-05-01 22:41 843注:原创作品,分享以供交流学习,转载请注明出处。 递 ... -
HttpRequest.getSession(boolean boo)方法注意点
2014-05-01 01:04 2152getSession(boolean create) ... -
java 之 String的那些事儿
2014-04-17 00:05 576equals方法和==的区别 首先大家知道,String既 ... -
java 之递归便利文件夹中的文件
2014-04-16 00:34 848import java.io.File; public ... -
java 之this,super关键字
2014-04-16 00:29 465this关键字的三种用法: 第一、通过this ... -
java 之md5加密
2014-04-16 00:25 637package com.supan.md5; import ... -
java String变量判空 效率
2014-04-09 23:16 1472Java中的String为引用类型,我们经常遇到判空的情况,s ... -
StringBuffer、String、StringBuilder的区别
2014-01-23 21:54 490String,StringBuffer与StringBuild ...
相关推荐
这个“类QQ聊天程序”是一个简单的实例,展示了如何利用Java实现即时通讯功能。下面我们将深入探讨其核心知识点。 1. **网络编程基础**: Java中的`Socket`类和`ServerSocket`类是进行网络通信的基础。`...
QQ应用程序是许多用户熟悉的即时通讯工具,而这个项目则是使用Java的GUI(图形用户界面)编程技术实现的一个简化版本。Java GUI编程主要依赖于Swing库,它为开发者提供了丰富的组件和工具来创建桌面应用程序的界面。...
- 为用户提供一个实时交流的平台。 - 促进信息共享和技术交流。 - 满足不同用户群体的需求。 #### 二、系统概述 - **系统架构**:本聊天室系统基于Java语言开发,利用Java强大的跨平台特性实现多终端兼容性。 -...
在这个项目中,学员们将接触到一个名为"MyQQ"的模拟聊天应用的开发,这是一款类似于QQ的即时通讯软件。通过参与这个项目,学员可以学习到实际开发中的关键技术和流程,从而对软件工程有更深入的理解。 在描述中提到...
其特色在于利用Java的Socket实现TCP通信,多线程技术保证了服务器的高效处理,但不足之处可能包括安全性还有待加强,以及用户界面的优化空间。 在整个设计过程中,不仅锻炼了TCP/IP协议的理解和应用能力,也提高了...