資源簡介
個個博客:http://my.csdn.net/tangcaijun
網上看到有很多仿qq的版本,感覺有部分起點有點過高了,可能會有部分初學者看不懂吧,
所以就弄了個主要是寫 tcp通信+界面 的代碼,
主要是希望能有更多人可以去了解java tcp 通信是如何使用的。。。

代碼片段和文件信息
package?client;
import?java.awt.*;
import?java.awt.event.*;
import?java.io.*;
import?java.net.*;
import?javax.swing.Jframe;
/**
??*?廣石化計算機11-3班
?*?choldrim(財俊)
?*?
?*?chatClient和chatServer都是前陣子寫的
?*?可能編程習慣和命名上沒有很統一,但還是必要的地方都已經注有注釋了
?*?
?*?@author?神奇物種
?*
?*/
@SuppressWarnings(“serial“)
public?class?ChatClient?extends?Jframe{
Socket? s =ChkLogin.clientSocket;
DataOutputStream? dos =null;
DataInputStream? dis =?null;
TextField tf? =?new?TextField();
TextArea? ta =new?TextArea();
private?boolean? isconneted? =?false;//?is?it?connected?to?the?server...
public?void?chatInterface() //create?chat?frame...
{
settitle(Main_1.qq+“---廣播群聊“);
Toolkit?tk?=?Toolkit.getDefaultToolkit();
setIconImage(tk.getImage(“pic/qqlogo1.png“));
Dimension?screensize?=?tk.getScreenSize();
setLocation(screensize.width/3?screensize.height/3);
add(tfBorderLayout.CENTER);
add(taBorderLayout.NORTH);
ta.setEditable(false);
ta.setBackground(Color.white);
pack();
this.addWindowListener(new?WindowAdapter(){
//@Override
public?void?windowClosing(WindowEvent?we)
{
disconnet(); //don‘t?forget?this?even?you?want?to?exit
System.exit(0);
}
});
//添加監聽,enter發送信息
tf.addActionListener(new?tfListener());
setVisible(true);
start();
RecvThread(); //add?receive?thread....(添加接收信息線程)
}
private?void?start()?{
try?{
isconneted?=?true;
dos?=?new?DataOutputStream(s.getOutputStream());
dis?=?new?DataInputStream(s.getInputStream());
}?catch?(ConnectException?e)?{
System.out.println(“server?is?out?of?running...plz?wait...“);
System.exit(0);
}catch?(IOException?e)?{
e.printStackTrace();
}
}
private?void?disconnet()?{
try?{
if(dos?!=?null)dos.close();
if(s?!=?null)s.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
private?class?tfListener?implements?ActionListener{
@Override
public?void?actionPerformed(ActionEvent?e)?{
String?str?=?tf.getText().trim();
tf.setText(““);
try?{
dos.writeUTF(str);
dos.flush();
}?catch?(IOException?e1)?{
e1.printStackTrace();
}
}
}
private?void?RecvThread()?{
new?Thread(new?Runnable()?{
public?void?run()?{
try?{
while?(isconneted)?{
String?str?=?dis.readUTF();
ta.setText(ta.getText()?+?‘\n‘?+?str);
}
}?catch?(SocketException?e)?{
System.out.println(“server?has?exited?plz?try?again?later...“);
System.exit(0);
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}).start();
}
// public?static?void?main(String[]?args)?{
// new?ChatClient().chatInterface();
// }
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????230??2012-11-24?11:52??read?me.txt
?????目錄???????????0??2012-11-24?11:41??chat?2_2\
?????文件?????????301??2012-10-19?15:32??chat?2_2\.classpath
?????文件?????????384??2012-10-19?15:32??chat?2_2\.project
?????目錄???????????0??2012-11-24?11:41??chat?2_2\.settings\
?????文件?????????629??2012-10-19?15:32??chat?2_2\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2012-11-24?11:41??chat?2_2\bin\
?????目錄???????????0??2012-11-24?11:41??chat?2_2\bin\client\
?????文件?????????710??2012-11-23?16:13??chat?2_2\bin\client\ChatClient$1.class
?????文件????????1633??2012-11-23?16:13??chat?2_2\bin\client\ChatClient$2.class
?????文件????????1345??2012-11-23?16:13??chat?2_2\bin\client\ChatClient$tfListener.class
?????文件????????3750??2012-11-23?16:13??chat?2_2\bin\client\ChatClient.class
?????文件????????2403??2012-11-23?16:13??chat?2_2\bin\client\ChkLogin.class
?????文件?????????779??2012-11-23?16:13??chat?2_2\bin\client\Main_1$1.class
?????文件?????????867??2012-11-23?16:13??chat?2_2\bin\client\Main_1$2.class
?????文件????????1545??2012-11-23?16:13??chat?2_2\bin\client\Main_1$loginconnect.class
?????文件????????3475??2012-11-23?16:13??chat?2_2\bin\client\Main_1.class
?????文件?????????665??2012-11-23?16:13??chat?2_2\bin\client\SetPort$1.class
?????文件????????2753??2012-11-23?16:13??chat?2_2\bin\client\SetPort.class
?????文件?????????658??2012-11-23?16:13??chat?2_2\bin\client\login$1.class
?????文件?????????658??2012-11-23?16:13??chat?2_2\bin\client\login$2.class
?????文件?????????920??2012-11-23?16:13??chat?2_2\bin\client\login$3.class
?????文件?????????658??2012-11-23?16:13??chat?2_2\bin\client\login$4.class
?????文件????????1104??2012-11-23?16:13??chat?2_2\bin\client\login$mouse.class
?????文件????????5259??2012-11-23?16:13??chat?2_2\bin\client\login.class
?????目錄???????????0??2012-11-24?11:41??chat?2_2\bin\server\
?????文件?????????682??2012-11-23?16:13??chat?2_2\bin\server\ChatServer$1.class
?????文件????????3576??2012-11-23?16:13??chat?2_2\bin\server\ChatServer$Client.class
?????文件????????1170??2012-11-23?16:13??chat?2_2\bin\server\ChatServer$changePort.class
?????文件????????1190??2012-11-23?16:13??chat?2_2\bin\server\ChatServer$menu.class
?????文件?????????856??2012-11-23?16:13??chat?2_2\bin\server\ChatServer$serverRuning.class
............此處省略14個文件信息
評論
共有 條評論