通信基础篇小项目-----多人聊天QQ的实现
2014-04-01 17:04
232 查看
自然界的通信种类是多种多样的,我们在每一天都会遇到各种各样的通信问题。然而通信的实质是什么,其实就是一种协议而已,仅此。就拿语言文字来说吧,每个国家制定不同的语言用来实现交流,这就是一种最基础的通信,每个文字代表的是一种不同的内容,这是人和人之间事先定好的协议,所以说,只要协议一旦确定,通信就不是什么大问题了。
学习java通信的核心是创建服务器,客户端连接服务器,客户端与服务器的信息交换。创建服务器只需要一行代码就足够了Socketserver server=new Socket(port)(其中port为服务器得端口号),创建服务器后,服务器需要进入等待状态,一旦有客户端连接上来就会主动把端口给予客户端,客户端与服务器可以是就连接在一起。就可以等待消息的发送了。当然这个过程也只需要一行代码,Socket client=server.accept();. 最后就是客户机连接服务器了,连接服务器也只需要一行代码Socket
client=new Socket("ip" , port)(就是需要获得服务器的ip地址和端口号)。这样一个简单的服务器和端口就连接好了。
下面是根据这个原理写的一个简单多人聊天室。
首先是UML图:首先我们得定义六个类,
这样,一个简单的多人聊天室就构架好了,下面是实现的过程,首先是启动界面类,客户端的界面类会弹出如下窗口。
输入端口号就可以创建服务器,一个简单的服务器就这样创建了,当然,由于客户端的代码在设置的时候没有设置传IP地址,所以这里默认的端口只能是6666.这会在以后得以解决。
启动客户端界面如下
点击连接服务器后就可以连接到服务器中。对话开始。当然这里我们多创建几个客户端开始聊天。
开始聊天、
这样一个简单的聊天是就实现了。再来温习一下:
首先是是服务器创建,并且让服务器处于等待状态
客户端来连接服务器
读取消息的时候为了不阻塞其他线程的进行,所以读取线程的方法要单独的在一个线程。
大小: 6.2 KB
大小: 3.3 KB
大小: 3 KB
大小: 1.7 KB
大小: 4.2 KB
大小: 5.5 KB
大小: 9.8 KB
大小: 10.2 KB
大小: 35 KB
大小: 35 KB
小项目之简单聊天窗口.zip (5.9 KB)
下载次数: 4
大小: 29.7 KB
查看图片附件
学习java通信的核心是创建服务器,客户端连接服务器,客户端与服务器的信息交换。创建服务器只需要一行代码就足够了Socketserver server=new Socket(port)(其中port为服务器得端口号),创建服务器后,服务器需要进入等待状态,一旦有客户端连接上来就会主动把端口给予客户端,客户端与服务器可以是就连接在一起。就可以等待消息的发送了。当然这个过程也只需要一行代码,Socket client=server.accept();. 最后就是客户机连接服务器了,连接服务器也只需要一行代码Socket
client=new Socket("ip" , port)(就是需要获得服务器的ip地址和端口号)。这样一个简单的服务器和端口就连接好了。
下面是根据这个原理写的一个简单多人聊天室。
首先是UML图:首先我们得定义六个类,
这样,一个简单的多人聊天室就构架好了,下面是实现的过程,首先是启动界面类,客户端的界面类会弹出如下窗口。
输入端口号就可以创建服务器,一个简单的服务器就这样创建了,当然,由于客户端的代码在设置的时候没有设置传IP地址,所以这里默认的端口只能是6666.这会在以后得以解决。
启动客户端界面如下
点击连接服务器后就可以连接到服务器中。对话开始。当然这里我们多创建几个客户端开始聊天。
开始聊天、
这样一个简单的聊天是就实现了。再来温习一下:
首先是是服务器创建,并且让服务器处于等待状态
public void setupServer(){ try{ ServerSocket so=new ServerSocket(port); System.out.println("创建服务器成功了,port: "+port); while(true){ client =so.accept(); System.out.println("有人来连结了"+client.getRemoteSocketAddress().toString()); //启动一个服务器的线程去处理这个连上来的客户端 ServerThread st=new ServerThread(client,jtereceive); st.start(); ChatList. ThreadAdd(st); } }catch(Exception e){ e.printStackTrace(); } }
客户端来连接服务器
Socket socket=new Socket(this.IP,this.port);
读取消息的时候为了不阻塞其他线程的进行,所以读取线程的方法要单独的在一个线程。
大小: 6.2 KB
大小: 3.3 KB
大小: 3 KB
大小: 1.7 KB
大小: 4.2 KB
大小: 5.5 KB
大小: 9.8 KB
大小: 10.2 KB
大小: 35 KB
大小: 35 KB
小项目之简单聊天窗口.zip (5.9 KB)
下载次数: 4
大小: 29.7 KB
查看图片附件
相关文章推荐
- 循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天
- 局域网LanQQ聊天项目(一)数据库与通信协议设计
- Java通信-仿QQ聊天项目
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- Linux下实现类似QQ的通信(简单聊天程序)
- Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)
- java学习笔记-----qq项目----在服务器端实现两个客户端的通信的原理
- 即时通信系统中如何实现:聊天消息加密,让通信更安全? 【低调赠送:QQ高仿版GG 4.5 最新源码】
- 手机web页面调用手机QQ实现在线聊天的效果
- 移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(二)
- 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(一)
- webqq2协议分析和qq聊天机器人简单实现(转)
- 两个有名管道实现qq通信 续
- html5 实现qq聊天的气泡效果
- JS实现仿QQ聊天窗口抖动特效
- SharpStreaming项目开发纪实:构建基本的服务器及客户端应用(六)——服务器通信部分初步实现
- qq项目第三天(客户端通讯,可以互相聊天)
- Java实现简易聊天软件_类QQ(含课程论文、实施计划书、演示视频、答辩PPT、源代码及运行环境)
- (二十)即时通信的聊天气泡的实现I
- 用DirectShow实现QQ的音视频聊天功能