资源简介
使用Java 多线程,IO流,网络编程,GUI,集合等知识实现一个Java JDK版仿QQ聊天室,实现了单独聊天和群聊。

代码片段和文件信息
package com.ooyhao.client;
import java.awt.List;
import java.awt.TextField;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JOptionPane;
import com.google.gson.Gson;
import com.ooyhao.pojo.DataPackage;
import com.ooyhao.ui.GroupChatframe;
//客户端
public class Client {
public static void main(String[] args) throws Exception {
GroupChatframe frame = new GroupChatframe(“username“);
Socket socket = null;
//动态获取本机ip地址
InetAddress ia = InetAddress.getLocalHost();
//当服务器未启动时,弹出提示框。
try {
socket = new Socket(ia.getHostAddress() 8888);
}catch (Exception e) {
JOptionPane.showMessageDialog(frame “服务器未启动“);
System.exit(0);
}
//弹出输入框,要求用户输入用户名
frame.settitle(socket.getInetAddress().getHostAddress());
while(true) {
String inputContent = null;
inputContent = JOptionPane.showInputDialog(
frame
“输入你的名字(“
+ “不允许不输入或只输入空格):““服务器ip:“+“192.168.91.1“
JOptionPane.QUESTION_MESSAGE
);
System.out.println(“输入的内容: “ + inputContent);
if(inputContent == null || ““.equals(inputContent) || ““.equals(inputContent.trim()) ) {
System.exit(0);
}else {
//发送一条状态信息为1的信息,用户告知服务器,此客户端上线。
TextField field = frame.getTextField();
List list = frame.getList();
frame.settitle(inputContent);
String message = field.getText();
DataPackage dataPackage = new DataPackage();
//要发送给谁
Set dest = new HashSet();
String[] strs = list.getItems();
for(String s : strs) {
dest.add(s);
}
String sender = frame.gettitle();
Integer state = 1;
dataPackage.setDest(dest);
dataPackage.setMessage(message);
dataPackage.setSender(sender);
dataPackage.setState(state);
try {
// 通过socket获取发送数据的输出流并将其包装成一个缓冲字符流
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
Gson gson = new Gson();
writer.write(gson.toJson(dataPackage));
writer.newLine();
writer.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
line = reader.readLine();
Gson gson = new Gson();
DataPackage data = gson.fromJson(line DataPackage.class);
if(data.getState() == 0) {
JOptionPane.showMessageDialog(frame “用户名存在“);
}else {
SimpleDateFormat sdf = new SimpleDateFormat(“hh:mm:ss“);
String time = sdf.format(new Date());
frame.getTextArea().append(data.getSender()+
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-18 23:22 Chat\
文件 362 2018-04-23 23:05 Chat\.classpath
文件 380 2018-04-23 23:04 Chat\.project
目录 0 2018-06-18 23:22 Chat\.settings\
文件 598 2018-04-23 23:04 Chat\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-06-19 19:48 Chat\bin\
目录 0 2018-06-19 19:48 Chat\bin\com\
目录 0 2018-06-19 19:48 Chat\bin\com\ooyhao\
目录 0 2018-06-19 19:48 Chat\bin\com\ooyhao\client\
文件 5448 2018-06-19 19:48 Chat\bin\com\ooyhao\client\Client.class
文件 4444 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientReceiveThread.class
文件 3156 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSendThread$1.class
文件 2588 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSendThread$2.class
文件 1832 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSendThread.class
文件 3787 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSingleChatThread$1.class
文件 1072 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSingleChatThread$2.class
文件 1336 2018-06-19 19:48 Chat\bin\com\ooyhao\client\ClientSingleChatThread.class
目录 0 2018-06-19 19:48 Chat\bin\com\ooyhao\pojo\
文件 1810 2018-06-19 19:48 Chat\bin\com\ooyhao\pojo\DataPackage.class
目录 0 2018-06-19 19:48 Chat\bin\com\ooyhao\server\
文件 1445 2018-06-19 19:48 Chat\bin\com\ooyhao\server\Handler.class
文件 1000 2018-06-19 19:48 Chat\bin\com\ooyhao\server\Server.class
文件 3429 2018-06-19 19:48 Chat\bin\com\ooyhao\server\ServerCenterController.class
文件 2627 2018-06-19 19:48 Chat\bin\com\ooyhao\server\ServerReceiveThread.class
目录 0 2018-06-19 19:48 Chat\bin\com\ooyhao\ui\
文件 744 2018-06-19 19:48 Chat\bin\com\ooyhao\ui\GroupChatfr
文件 2679 2018-06-19 19:48 Chat\bin\com\ooyhao\ui\GroupChatfr
文件 2440 2018-06-19 19:48 Chat\bin\com\ooyhao\ui\SingleChatfr
目录 0 2018-06-19 19:48 Chat\bin\images\
文件 62319 2018-04-25 15:13 Chat\bin\images\QQ.png
文件 64279 2018-04-25 15:16 Chat\bin\images\wechat.png
............此处省略25个文件信息
- 上一篇:javax 常用jar
- 下一篇:Android 最简洁的txt文本阅读器
相关资源
- Java 仿QQ(附客户端以及服务端源码)
- JAVA局域网聊天系统微仿QQ
- Android仿QQ聊天系统Android
- Android的模仿聊天QQ
- Android旋转专辑图片—仿留声机效果
- Android 仿QQ界面 适合新手学习
- Android应用源码仿QQ邮箱安卓客户端项
- Java实现仿QQ、飞秋聊天程序
- 高仿QQ界面,android studio
- 仿QQ源代码java版)
- java聊天室仿QQ,socket+线程实现
- Android仿QQ局域网聊天软件源码
- Android百度定位(模仿QQ和微信位置分
- MyQQ最新版(Java版高仿QQ聊天即时通软
- Android仿QQ最新界面源码
- Android开发基于Socket聊天最终版
- Java仿QQ.zip
- MyQQ_v20120823Java版高仿QQ聊天即时通软件
- Android 开发聊天工具 模仿QQ,实现网络
- android仿QQ局域网聊天软件
- JAVA案例开发集锦
- 基于android聊天仿QQ聊天系统.rar
- Android仿QQ框架
- Android实现仿QQ5.0的侧滑效果博客源码
- Android项目源码界面超级华丽的仿QQ
- Fragment+PopupWindow完美实现了仿QQ空间底
- java版仿QQ即时通讯系统
- Android项目源码简单的仿QQ聊天安卓A
- java高仿qq聊天
- 高仿qqjava
评论
共有 条评论