資源簡介
使用JAVA開發的網絡聊天程序,帶有UI界面以及客戶端和服務器端的全部代碼,適合于課程設計和JAVA的Socket編程學習,通信協議為IP。

代碼片段和文件信息
//客戶端部分
import?java.awt.frame;
import?java.awt.TextArea;
import?java.awt.TextField;
import?java.awt.Toolkit;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.DataInputStream;
import?java.io.DataOutputStream;
import?java.io.EOFException;
import?java.io.IOException;
import?java.net.Socket;
import?java.net.SocketException;
import?java.net.UnknownHostException;
import?javax.swing.JButton;
import?javax.swing.JPanel;
public?class?ChatClient?extends?frame?{
Socket?socket?=?null;
TextField?inputChat?=?new?TextField();?//?定義文本框用來輸入數據
TextArea?showChat?=?new?TextArea();?//?展示數據的地方
JButton?submit?=?new?JButton(“發送“);
JPanel?pan?=?new?JPanel();
DataInputStream?dis?=?null;?//?接收流
DataOutputStream?dos?=?null;?//?輸出流
private?String?c_name?=?null;
private?static?boolean?isRun?=?false;
private?boolean?flag?=?true;?//?讓c_name的傳遞只有一次
public?ChatClient()?{
}
public?static?void?main(String[]?args)?{
new?ChatClient().launchframe();
}
public?ChatClient(String?name)?{
this.c_name?=?name;
this.launchframe();
}
public?void?launchframe()?{?//?Swing?界面
this.settitle(“局域網聊天系統“);
int?width?=?510;
int?high?=?360;
this.setLayout(null);
this.setSize(width?high);
showChat.setBounds(5?5?490?295);
pan.setBounds(5?305?490?45);
pan.setLayout(null);
inputChat.setBounds(5?5?400?40);
submit.setBounds(405?5?95?40);
//?居中地位
int?w?=?(Toolkit.getDefaultToolkit().getScreenSize().width?-?width)?/?2;
int?h?=?(Toolkit.getDefaultToolkit().getScreenSize().height?-?high)?/?2;
pan.add(inputChat);
pan.add(submit);
this.add(showChat);
this.add(pan);
this.setLocation(w?h);
this.setVisible(true);
addWindowListener(new?WindowAdapter()?{
@Override
public?void?windowClosing(WindowEvent?e)?{
disconnect();
System.exit(0);
}
});
inputChat.addActionListener(new?TextFieldListener());?//?輸入窗口中添加監聽
submit.addActionListener(new?TextFieldListener());?//?輸入窗口中添加監聽
connectToServer();?//?連接服務器
Thread?clientThread?=?new?Thread(new?ClientThread());
clientThread.start();?//?啟動客戶端線程
}
private?void?connectToServer()?{
try?{
socket?=?new?Socket(“125.221.225.105“?8888);
dis?=?new?DataInputStream(socket.getInputStream());
dos?=?new?DataOutputStream(socket.getOutputStream());
isRun?=?true;
}?catch?(UnknownHostException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
public?void?disconnect()?{?//?如果沒連接上服務器則關閉輸入輸出流和客戶端套接字
//?關閉各種流之前必須先關閉接受線程
try?{
if?(dos?!=?null)?{
dos.close();
}
if?(dis?!=?null)?{
dis.close();
}
if?(socket?!=?null)?{
socket.close();
}
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
private?class?ClientThread?implements
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4408??2013-12-27?21:26??ChatClient.java
?????文件????????3923??2013-12-27?21:26??ChatServer.java
?????文件????????2102??2013-12-27?21:26??Register.java
評論
共有 條評論