91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-04
  • 語言: Java
  • 標(biāo)簽: java??GUI??UDP??多人聊天??

資源簡介

這個(gè)是帶有界面的基于UDP通信,可以支持多人聊天的代碼,有注解,適合學(xué)習(xí),參考,希望對你有用

資源截圖

代碼片段和文件信息

/**
?*?
?*/
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;

/*
?*?
?*需求:編寫一個(gè)類似qq那樣可以聊天的可視化圖像界面,實(shí)現(xiàn)功能
?*1)用戶輸入文字可以顯示在公共區(qū)域(所有人都可以看見)
?*?2015年9月8日
?*/

/**
?*?接收顯示在公共區(qū)域信息的類
?*/
class?rev_Message?implements?Runnable?{

MulticastSocket?s?=?null;

rev_Message(MulticastSocket?s)?{
this.s?=?s;
}

@Override
public?void?run()?{

while?(true)?{
//?2定義數(shù)據(jù)包,用于存儲數(shù)據(jù)
byte[]?buf?=?new?byte[1024];
DatagramPacket?dp?=?new?DatagramPacket(buf?0?buf.length);
try?{
System.out.println(“wait?connect...“);
//?3通過Socket的receive方法接收數(shù)據(jù)
s.receive(dp);
//?4通過數(shù)據(jù)包的方法提取包中的數(shù)據(jù)打印
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?

評論

共有 條評論