• 大小: 6.46MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-14
  • 语言: Java
  • 标签: socket通信  

资源简介

之所以要3分,因为还是挺辛苦的,实现功能包括用户注册、登陆、修改密码、通信界面、上传下载文件;直接解压导入.project到eclipse就能用,不需要任何其他包,下载有什么问题可以直接提问,也可以发邮件:x.wang@whu.edu.cn

资源截图

代码片段和文件信息

package Chat;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;

public class Chatframe{
private PrintWriter pw;
private Jframe frame;
private JPanel pane_buttom;
private JSplitPane pane_center;

//显示内容的文本框,输入内容的文本框发送内容按钮
private JScrollPane pane_showWindow;
private JScrollPane pane_inputWindow;
private JTextArea area_showWindow;
private JTextArea area_inputWindow;

private JButton btn_send;

private Dimension dimension;//用于设置area_showWindow可拖拉的大小


//初始化
public Chatframe() {
frame = new Jframe();
pane_buttom = new JPanel();
pane_showWindow = new JScrollPane();
pane_inputWindow = new JScrollPane();
area_showWindow = new JTextArea();
area_inputWindow = new JTextArea();
pane_center = new JSplitPane(JSplitPane.VERTICAL_SPLIT false pane_showWindow pane_inputWindow);
btn_send = new JButton(“发送“);

dimension = new Dimension(50 300);
}

//调用方法显示窗口
public void showframe(){
initframe();
initChatTextArea();
initButton();
btn_send();
socket();
}

//主窗体
public void initframe(){
frame.settitle(“客户端“);
int width = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setBounds(width / 2 height / 2 400 450);
frame.setVisible(true);
}

//内容显示文本框和输入内容文本框
private void initChatTextArea(){
//取得视图焦点
pane_showWindow.getViewport().add(area_showWindow);
pane_inputWindow.getViewport().add(area_inputWindow);
//将显示文本域设置为不可编辑
area_showWindow.setEditable(false);
//设置显示文本域可拖拉的大小 
pane_showWindow.setMinimumSize(dimension);
frame.add(pane_center BorderLayout.CENTER);
}

//发送文件,发送内容按钮
public void initButton(){
pane_buttom.add(btn_send);
frame.add(pane_buttom BorderLayout.SOUTH);
}

private void btn_send(){
btn_send.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
String info = area_inputWindow.getText();
area_showWindow.append(“客户端: “+info+“\r\n“);
pw.println(info);
area_inputWindow.setText(““);
}
});
}

private void socket(){
try {
@SuppressWarnings(“resource“)
Socket s = new Socket(“localhost“9988);
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
pw=new PrintWriter(s.getOutputStream()true);
while(true){
//不停地读取从服务器端发来的信息
String info=br.readLine();
area_showWindow.

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-02-22 19:33  计算机网络\
     文件         301  2016-01-09 20:31  计算机网络\.classpath
     文件         391  2016-01-09 20:31  计算机网络\.project
     目录           0  2016-02-22 19:33  计算机网络\.settings\
     文件         598  2016-01-09 20:31  计算机网络\.settings\org.eclipse.jdt.core.prefs
     目录           0  2016-02-22 19:33  计算机网络\bin\
     目录           0  2016-02-22 19:33  计算机网络\bin\Chat\
     文件        1226  2016-01-09 20:31  计算机网络\bin\Chat\Chatframe$1.class
     文件        4297  2016-01-09 20:31  计算机网络\bin\Chat\Chatframe.class
     文件        1273  2016-01-09 20:31  计算机网络\bin\Chat\ChatframeServer$1.class
     文件        4318  2016-01-09 20:31  计算机网络\bin\Chat\ChatframeServer.class
     目录           0  2016-02-22 19:33  计算机网络\bin\Client\
     文件        4963  2016-01-09 20:31  计算机网络\bin\Client\ChangePassword.class
     文件        1501  2016-01-09 20:31  计算机网络\bin\Client\Client.class
     文件        4559  2016-01-09 20:31  计算机网络\bin\Client\Log.class
     文件        2184  2016-01-09 20:31  计算机网络\bin\Client\MainLog.class
     文件        4558  2016-01-09 20:31  计算机网络\bin\Client\Register.class
     目录           0  2016-02-22 19:33  计算机网络\bin\FileTransfer\
     文件        2728  2016-01-09 20:31  计算机网络\bin\FileTransfer\Download.class
     文件        3270  2016-01-09 20:31  计算机网络\bin\FileTransfer\DownLoadListener$1.class
     文件        1210  2016-01-09 20:31  计算机网络\bin\FileTransfer\DownLoadListener.class
     文件        1937  2016-01-09 20:31  计算机网络\bin\FileTransfer\FileTransfer.class
     文件        1914  2016-01-09 20:31  计算机网络\bin\FileTransfer\Upload.class
     文件        2958  2016-01-09 20:31  计算机网络\bin\FileTransfer\UploadListener$1.class
     文件        1172  2016-01-09 20:31  计算机网络\bin\FileTransfer\UploadListener.class
     目录           0  2016-02-22 19:33  计算机网络\bin\Server\
     文件        7852  2016-01-09 20:31  计算机网络\bin\Server\Server.class
     目录           0  2016-02-22 19:33  计算机网络\src\
     目录           0  2016-02-22 19:33  计算机网络\src\Chat\
     文件        3403  2016-01-09 20:31  计算机网络\src\Chat\Chatframe.java
     文件        3469  2016-01-09 20:31  计算机网络\src\Chat\ChatframeServer.java
............此处省略15个文件信息

评论

共有 条评论