【原创-全仿QQ软件-附源代码】求评分打赏~
软件截图见这里:http://bbs.fishc.com/thread-52575-1-1.html项目构建目录如下(该版本是后期的一个版本):
@小甲鱼说好的代码来了~{:7_115:}
本帖最后由 Python_GoWithMe 于 2014-9-17 23:35 编辑
package com.skyqq2015.qq.client.biz;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import javax.swing.JTextArea;
import com.skyqq2015.qq.client.po.ClientPoint;
public class ClientManager {
public static final int PORT = 7129;
public static String IP=null;
public static ClientPoint cp;
/**
* 连接服务器服务
*/
public static void start() {
Socket so = null;
DataInputStream dis = null;
DataOutputStream dos = null;
try {
so = new Socket(IP, PORT);
System.out.println("连接到服务器……");
dis = new DataInputStream(new BufferedInputStream(
so.getInputStream()));
dos = new DataOutputStream(new BufferedOutputStream(
so.getOutputStream()));
} catch (IOException e) {
}
cp = new ClientPoint(so, dis, dos);
}
/**
* 向客户端发送消息
*/
public void send(final String msg) {
if (cp != null) {
new Thread(new Runnable() {
@Override
public void run() {
try {
cp.getDos().writeUTF(msg);
cp.getDos().flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}
/**
* 接收消息
*/
public void receive(JTextArea showMsgArea) {
new Thread(new Receiver(showMsgArea)).start();
}
public ClientManager(String ip)
{
this.IP=ip;
}
}
ClientManager.java //客户端 本帖最后由 Python_GoWithMe 于 2014-9-17 23:40 编辑
package com.skyqq2015.qq.client.biz;
import java.io.IOException;
import javax.swing.JTextArea;
import com.skyqq2015.qq.client.po.ClientPoint;
public class Receiver implements Runnable {
private JTextArea showMsgArea;
public static boolean bool = true;
public Receiver(JTextArea showMsgArea) {
this.showMsgArea = showMsgArea;
}
@Override
public void run() {
ClientManager.start();
while(bool){
System.out.println("==============");
String msg = null;
try {
msg = ClientManager.cp.getDis().readUTF();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(msg != null && !msg.isEmpty()){
showMsgArea.append(msg);
}
}
}
}
Receiver.java// 客户端message接受
package com.skyqq2015.qq.server.biz;
import java.io.IOException;
import javax.swing.JTextArea;
import com.skyqq2015.qq.server.po.ServerPoint;
public class Receiver implements Runnable {
private JTextArea showMsgArea;
public static boolean bool = true;
public Receiver(JTextArea showMsgArea) {
this.showMsgArea = showMsgArea;
}
@Override
public void run() {
ServerManager.start();
while(bool){
System.out.println("++++++++++++++");
String msg = null;
try {
msg = ServerManager.sp.getDis().readUTF();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(msg != null && !msg.isEmpty()){
showMsgArea.append(msg);
}
}
}
}
Receiver.java //消息接收
package com.skyqq2015.qq.server.biz;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JTextArea;
import com.skyqq2015.qq.server.po.ServerPoint;
public class ServerManager {
public static final int PORT = 7129;
public static ServerPoint sp;
public static void start() {
Socket so = null;
DataInputStream dis = null;
DataOutputStream dos = null;
try {
ServerSocket server = new ServerSocket(PORT);
System.out.println("服务器启动……");
so = server.accept();
System.out.println("有客户接入……");
dis = new DataInputStream(new BufferedInputStream(
so.getInputStream()));
dos = new DataOutputStream(new BufferedOutputStream(
so.getOutputStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sp = new ServerPoint(so, dis, dos);
}
/**
* 向客户端发送消息
*/
public void send(final String msg) {
if (sp != null) {
new Thread(new Runnable() {
@Override
public void run() {
try {
sp.getDos().writeUTF(msg);
sp.getDos().flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}
/**
* 接收消息
*/
public void receive(JTextArea showMsgArea) {
new Thread(new Receiver(showMsgArea)).start();
}
}
ServerManager.java //服务器连接启动管理
由于终极版本和jar丢失 只能找到这个了 也是接近完工的成品C/S交互模式由于这份注释太少 让人不好意思发了都量比较大 下次接着发 晚安{:7_115:} 强烈支持楼主ing…… 真是难得给力的帖子啊。
页:
[1]