• 大小: 22KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Java
  • 标签: Socket  聊天  

资源简介

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

评论

共有 条评论