資源簡介
采用純java編寫,gui編程,協議采用的是tcp/ip協議,經過測試,可以上線使用
代碼片段和文件信息
package?com;
import?java.io.*;
import?java.net.*;
import?java.awt.*;
import?javax.swing.*;
import?java.util.*;
import?java.util.List;
import?java.awt.event.*;
public?class?Chat?implements?ActionListener{
private?static?Set?set=new?HashSet();
private?static?Map?map=new?HashMap();//放不同的用戶
private?Choice?choice;
private?Jframe?frame;
private?Container?contentPane;
private?JLabel??jl1jl2;?
private?JRadioButton?serverRbclientRb;
private?JLabel?informLbl;
private?JTextArea?centerText;
private?JTextField?sendText;//發送信息
private?JButton?connectBtnsendBtnexitBtn;
private?DatagramSocket?socket;
private?DatagramPacket?inPacket1inPacket2;
private?DatagramPacket?outPacket;
private?SocketAddress?address;
private?JScrollPane?jp;
public?Chat(){
frame=new?Jframe(“Chat“);
frame.setBounds(200200500400);
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
contentPane=frame.getContentPane();
initGUI();
}
public?void?initGUI(){
contentPane.setLayout(new?BorderLayout());
choice=new?Choice();
JPanel?p1=new?JPanel(new?FlowLayout(FlowLayout.LEFT));
p1.add(new?JLabel(“UDP協議:“));
JPanel?p2=new?JPanel(new?FlowLayout(FlowLayout.LEFT));
serverRb=new?JRadioButton(“服務器“);
clientRb=new?JRadioButton(“客戶端“);
ButtonGroup?bg=new?ButtonGroup();
bg.add(serverRb);
bg.add(clientRb);
p2.add(serverRb);
p2.add(clientRb);
p2.add(new?JLabel(“連接狀態:“));
informLbl=new?JLabel();
p2.add(informLbl);
JPanel?northP=new?JPanel(new?GridLayout(21));
northP.add(p1);northP.add(p2);
JPanel?centerP=new?JPanel(new?FlowLayout());
centerText=new?JTextArea(1530);
jp=new?JScrollPane(centerText);
centerP.add(jp);
JPanel?p3=new?JPanel(new?FlowLayout());
jl1=new?JLabel(““);
sendText=new?JTextField(25);sendText.addActionListener(this);
jl2=new?JLabel(““);
p3.add(jl1);
p3.add(jl2);
p3.add(sendText);
choice.add(“all“);
p3.add(choice);
connectBtn=new?JButton(“連接“);connectBtn.addActionListener(this);
sendBtn=new?JButton(“發送“);sendBtn.addActionListener(this);
sendBtn.setEnabled(false);
exitBtn=new?JButton(“退出“);exitBtn.addActionListener(this);
JPanel?p4=new?JPanel(new?FlowLayout(FlowLayout.RIGHT));
p4.add(connectBtn);
p4.add(sendBtn);
p4.add(exitBtn);
JPanel?southP=new?JPanel(new?GridLayout(21));
southP.add(p3);
southP.add(p4);
contentPane.add(northPBorderLayout.NORTH);
contentPane.add(centerPBorderLayout.CENTER);
contentPane.add(southPBorderLayout.SOUTH);
}
public?void?go(){
frame.setVisible(true);
}
public?void?actionPerformed(ActionEvent?e){
if(e.getSource()==sendText||e.getSource()==sendBtn){
String?sendStr=sendText.getText().trim();
if(sendStr.length()==0){
}
if(clientRb.isSelected()){
try{
//客戶發送
if(choice.getSelectedItem().equals(“all“)){
byte[]?sendArray=(new?StringBuffer().append(Land.aa+“:??“+sendStr)).toString().getBytes();
outPacket=new?DatagramPacket(sendArraysendArray.lengthnew
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????220??2008-04-22?13:35??聊天室\.classpath
?????文件????????368??2008-04-23?10:08??聊天室\.project
?????文件?????????88??2008-08-02?14:49??聊天室\.settings\org.eclipse.core.resources.prefs
?????文件???????3956??2009-03-20?18:49??聊天室\com\Chat$Receiver.class
?????文件???????8250??2009-03-20?18:49??聊天室\com\Chat.class
?????文件???????7987??2008-04-25?08:26??聊天室\com\Chat.java
?????文件???????2515??2009-03-20?18:49??聊天室\com\Land$Subfr
?????文件???????3713??2009-03-20?18:49??聊天室\com\Land.class
?????文件???????4426??2008-04-23?21:01??聊天室\com\Land.java
?????文件???????2141??2009-03-20?18:49??聊天室\com\Regedit$R.class
?????文件???????3315??2009-03-20?18:49??聊天室\com\Regedit.class
?????文件???????2781??2008-04-23?21:01??聊天室\com\Regedit.java
?????文件???????1929??2009-03-20?18:49??聊天室\com\User.class
?????文件????????940??2008-04-21?13:58??聊天室\com\User.java
?????文件???????1566??2009-03-20?18:49??聊天室\com\UserService.class
?????文件???????1096??2008-04-23?21:15??聊天室\com\UserService.java
?????目錄??????????0??2009-03-20?18:49??聊天室\.settings
?????目錄??????????0??2009-03-20?18:49??聊天室\com
?????目錄??????????0??2009-03-20?18:49??聊天室
-----------?---------??----------?-----??----
????????????????45291????????????????????19
評論
共有 條評論