资源简介
1.该资源能够实现像飞秋,QQ一样聊天,但是内容很简单,适合本地测试,初学者可以下载,高手勿扰。
2.采用客户端和服务端的方式,代码分包明确,下载后先看使用说明。
3.注意,测试的时候先启动服务端,再启动客户端。
4.采用Socket编程,GUI图形,事件响应,I/O,多线程。
5.要测试其他端口和IP,可以自行修改。
6.若有什么问题,请联系球球:125836941 注明来意
代码片段和文件信息
package client;
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Client {
/**
* @param args
*/
// 创建聊天对话框用到的GUI组件变量
private Jframe jframe;
private JTextArea jTextArea;
private JTextField jTextField;
private JButton jButton;
private JPanel jPanel;
//在客户端和服务端传输数据要用到的变量引用,并设置getter/setter方法
private Socket socket;
private DataInputStream dis;
private DataOutputStream dos;
//把绘制窗体写在构造方法里,这样创建对象时候,就能直接绘制窗体
public Client(){
ui();
send();
con();
accept();
keyEntry();
}
/**
* 开启一个新线程,用来一直接收客户端输出到socket的数据
*/
public void accept(){
Thread thread=new Thread(new ClientThead(this));
thread.start();
}
/**
* 要实现数据传输,必须先连接服务端,因此写一个连接服务端的方法con
*/
public void con(){
try {
socket=new Socket(new Socket().getLocalAddress()1989);
dis=new DataInputStream(socket.getInputStream());
dos=new DataOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 方法ui用来绘制对话窗体
*/
private void ui(){
//创建各种组件的对象,并赋值给类里定义的私有字段变量
jframe=new Jframe(“客戶端对话框“);
jTextArea=new JTextArea();
jTextField=new JTextField();
jButton=new JButton(“发送“);
jPanel=new JPanel();
//所有布局组件一定要放在最前面,由外层而内(由下而上)不然效果会和预想的很不一样!吃了很多亏的经验卡了很多次出来布局很怪
jframe.setLayout(new BorderLayout(1010));
jPanel.setLayout(new BorderLayout(1010));
//添加文本组件jTextArea,容器jPanel到jframe中同时进行布局
jframe.add(jTextAreaBorderLayout.CENTER);
jframe.add(jPanelBorderLayout.SOUTH);
//添加文本组件jTextField,按钮jButton到jPanel中同时进行布局
jPanel.add(jTextFieldBorderLayout.CENTER);
jPanel.add(jButtonBorderLayout.EAST);
//设置对话窗体的整体样式,并显示
jframe.setSize(400400);
jframe.setLocation(600 300);
jframe.setVisible(true);
}
//给发送按钮jButton添加事件监听器,为了代码干练,清晰,自定义一个事件监听器类SendMessageListener实现ActionListener接口
/**
* 给发送按钮jButton添加事件监听器写成一个send方法,让构造器直接调用,方便创建对象的时候使用。
* 自定义一个事件监听器类SendMessageListener实现ActionListener接口
* send方法用来发送聊天内容
*/
private void send(){
jButton.addActionListener(new ClientSendMessageListener(this));
}
/**
* 给输入文字JTextfield添加回车响应事件
*/
private void keyEntry(){
jTextField.addKeyListener(new KeyClient(this));
}
public static void main(String[] args) {
new Client();
}
/**
* @return the jTextArea
*/
public JTextArea getjTextArea() {
return jTextArea;
}
/**
* @param jTextArea the jTextArea to set
*/
public void setjTextArea(JTextArea jTextArea) {
this.jTextArea = jTextArea;
}
/**
* @return the j
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-04-01 18:01 chattool\
文件 301 2014-03-28 12:34 chattool\.classpath
文件 384 2014-03-28 12:34 chattool\.project
目录 0 2014-04-01 18:01 chattool\.settings\
文件 598 2014-03-28 12:34 chattool\.settings\org.eclipse.jdt.core.prefs
目录 0 2014-04-01 18:01 chattool\bin\
目录 0 2014-04-01 18:01 chattool\bin\client\
文件 3853 2014-03-31 23:34 chattool\bin\client\Client.class
文件 1815 2014-03-31 23:31 chattool\bin\client\ClientSendMessageListener.class
文件 1286 2014-03-31 23:31 chattool\bin\client\ClientThead.class
文件 1779 2014-03-31 23:31 chattool\bin\client\KeyClient.class
目录 0 2014-04-01 18:01 chattool\bin\serve\
文件 1774 2014-03-31 23:21 chattool\bin\serve\KeyServer.class
文件 1792 2014-03-31 22:50 chattool\bin\serve\SendMessageListener.class
文件 3884 2014-03-31 23:21 chattool\bin\serve\Server.class
文件 1272 2014-03-31 22:54 chattool\bin\serve\ServerThead.class
目录 0 2014-04-01 18:01 chattool\src\
目录 0 2014-04-01 18:01 chattool\src\client\
文件 3879 2014-03-31 23:34 chattool\src\client\Client.java
文件 1538 2014-03-31 23:31 chattool\src\client\ClientSendMessageListener.java
文件 648 2014-03-31 23:31 chattool\src\client\ClientThead.java
文件 1249 2014-03-31 23:31 chattool\src\client\KeyClient.java
目录 0 2014-04-01 18:01 chattool\src\serve\
文件 1246 2014-03-31 23:21 chattool\src\serve\KeyServer.java
文件 2652 2014-03-31 22:50 chattool\src\serve\SendMessageListener.java
文件 3898 2014-03-31 23:21 chattool\src\serve\Server.java
文件 716 2014-03-31 22:54 chattool\src\serve\ServerThead.java
文件 347 2014-04-01 17:59 使用说明.txt
相关资源
- 简单多线程一对一聊天程序
- websockets实现tomcat日志在线输出
- Java TCP IP Socket
- hpsocket demo
- websocket推送(兼容低版本的IE浏览器)
- java共享画板
- java实现Socket方式文件批量传输/上传到
- java实现websocket简单demo
- Android游戏源码基于蓝牙的坦克大战和
- Socket发送并接收服务器返回的数据
- JAVA局域网聊天系统微仿QQ
- JAVA整合WebSocket实现服务器消息推送项
- commons-httpclient-3.0
- android与c++通过socket通信
- Android仿QQ聊天系统Android
- zw_java视频聊天anychat.zip
- Android基于局域网socket通信
- Android代码-在wifi下手机与电脑的sock
- Android的模仿聊天QQ
- java建立TCP长链接
- 采用java编写的TCP/IP服务器端程序
- java多人聊天室可私聊
- 基于socket通信的java应用实现
- android仿微信聊天软件源代码
- android 仿微信语音聊天demo
- 计算机网络课程设计报告_DH算法_Wir
- JSP 聊天室---毕业设计
- 基于Socket的Android聊天室
-
java实现QQ聊天Jfr
ame客户端+服务器 - socket编程实验报告
评论
共有 条评论