资源简介
这个是带有界面的基于UDP通信,可以支持多人聊天的代码,有注解,适合学习,参考,希望对你有用
代码片段和文件信息
/**
*
*/
package UDP;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
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.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
/*
*
*需求:编写一个类似qq那样可以聊天的可视化图像界面,实现功能
*1)用户输入文字可以显示在公共区域(所有人都可以看见)
* 2015年9月8日
*/
/**
* 接收显示在公共区域信息的类
*/
class rev_Message implements Runnable {
MulticastSocket s = null;
rev_Message(MulticastSocket s) {
this.s = s;
}
@Override
public void run() {
while (true) {
// 2定义数据包,用于存储数据
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf 0 buf.length);
try {
System.out.println(“wait connect...“);
// 3通过Socket的receive方法接收数据
s.receive(dp);
// 4通过数据包的方法提取包中的数据打印
System.out.println(“ip:“ + dp.getAddress().getHostAddress()
+ “ ||port:“ + dp.getPort());
String str = new String(dp.getData() 0 dp.getData().length);
System.out.println(“----->data:“ + str);
String str1 = new String(“ip:“ + dp.getAddress() + “||“
+ “port:“ + dp.getPort());
createMenu.getTxr_rev().append(
“\r\n“ + str1 + “\r\n“ + str + “\r\n“);
} catch (IOException e) {
throw new RuntimeException(“接收失败“);
}
}
}
}
@SuppressWarnings(“serial“)
class createMenu extends Jframe {
private JButton btn_clear btn_send btn_close btn_sure;
private static TextArea txr_send;
private static TextArea txr_rev;
private static JTextField txrname;
private JPanel contentPane1;
private JDialog dialog;
private JLabel label;
MulticastSocket s = null;
InetAddress group = null;
createMenu() {
this.s = UDP_ChatDemo2.s;
this.group = UDP_ChatDemo2.group;
init_menu();
someEvent();
}
private void someEvent() {
btn_send.addActionListener(new SendMsg2(s group));
btn_clear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txr_send.setText(““);
}
});
btn_close.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
txr_rev.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论