资源简介
个个博客: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实现爬取指定网站的数据源码
- Java+sqlserver2000做的员工管理系统带
- 最小生成树算法源码 java源码
- tr069 java源码
- 贪吃蛇游戏(双人)JAVA源码
- Java实现音乐播放器源码
- javax.servlet-api-3.0.1-sources.jar
- javase编写的学生管理系统--适合初学者
- Java练手_电子时钟
- Java+Web的网上选课系统Java源码
- 公交管理系统带论文Java源码
- 电器商城小系统Java源码
- java网络留言板Java源码
- java项目实践之模拟电梯系统Java源码
- 带界面的DES加密解密java源码
- 在线考试系统完整代码,JAVA源码
- 即时通信系统Java实现
- fpgrowth算法java源码
- java编写的图书管理系统,提供源码
- 一个简单的java网络蜘蛛程序,非常适
- Android Socket源码实现与PC通讯
- Android手机版Java五子棋源代码
- 图书管理系统毕业设计+源码 - Java源码
- Android手机防盗软件Java源码
- 解魔方程序Java源码
- JavaWeb(SSH入门项目,适合初学者,适
- esp8266和电脑连接使用的java源码,双通
- Java手机通讯录应用源码.rar
- java调用高德公交api(java源码)
- 坦克大战Java源码适合新手
评论
共有 条评论