使用UDP写聊天室的小案例
代码展示
package com.zgd.chat;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 聊天室
*/
public class Chat extends JFrame
{
/**
* 发送消息按钮
*/
private JButton send;
/**
* 记录消息按钮
*/
private JButton log;
/**
* 清楚消息按钮
*/
private JButton clear;
/**
* 抖动按钮
*/
private JButton shake;
/**
* IP显示区域
*/
private TextField ipText;
/**
* 消息发送对象
*/
private TextArea sendText;
/**
* 消息显示对象
*/
private TextArea viewText;
/**
* UDP连接套接字
*/
private DatagramSocket socket;
/**
* 记录聊天记录的文件
*/
private static final String LOG_PATH = "log.txt";
/**
* IP
*/
private static final String IP = "127.0.0.1";
/**
* 端口
*/
private static final int PORT = 6666;
/**
* 聊天记录Writer
*/
private BufferedWriter bw;
public Chat()
{
init();
centerPanel();
southPanel();
event();
}
private void init()
{
this.setName("聊天室");
this.setSize(600, 800);
this.setLocation(800, 200);