资源简介

个个博客: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个文件信息

评论

共有 条评论