资源简介
个个博客: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个文件信息
相关资源
- 微博系统(Java源码,servlet+jsp),适
- 即时通讯系统JAVA源码
- 自动出题系统(java 课程设计)
- Java操作Oracle数据库-多线程.rar
- 12306抢票程序java源码
- 李兴华java源码笔记
- Java酒店管理系统毕业设计含文档.ra
- JAVA潜艇大战小游戏源码
- 仿照植物大战僵尸java源码
- java源码包4
- java源码包3
- B/S 公交管理系统 Java源码 eclipse工程
- Web安全培训ppt适合初学者
- 经纬度计算距离、方位角等java源码
- 重构到设计模式的经典案例,超完美
- JSP毕业设计作业:奖学金评定系统J
- 基于java的图书管理系统源码Java源码
- 基于CS系统的CRM客户关系型管理系统
- java源码 亲测java 酒店管理系统(含
- 表白墙Java源码
- Java 界面漂亮的打字软件源码.rar
- Java界面华丽的跳棋游戏.rar
- 音乐网站javaweb源码.rar
- Jsp+Mysql+Jdbc+Servlet适合初学者的登陆查
- 课程设计基于GUI的FTP客户端JAVA源码
- java基于servlet框架实现的CRM客户关系管
- Java超市购物进销存系统含Java源码完整
- 纯java游戏-植物大战僵尸源码
- 学院管理系统完整java源码
- Java版跳棋游戏源代码
评论
共有 条评论