
正文
java实现qq交流代码 简单java实现聊天
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于仿QQ聊天对话框的JAVA代码
1、swing的界面可以直接用netbeans画出来嘛。
2、可以把输出的聊天内容都放在一个StringBuffer里,每打出一句话,就把这句话追加在StringBuffer,然后把StringBuffer里的内容输出到Textarea中。
3、好友列表可以用JList
相关问答
Q1: 求一个用java编写的套接字实现类似于QQ对话的程序,急用
有两个类,服务器和客户端、
服务器类代码:
package chat;
import java.io.*;
import java.net.*;
import java.util.*;
/*服务器类*/
public class Server {
public ListSocket socketList = new ArrayListSocket();//存放所有连接的客户端的集合
public ServerSocket server;//服务器
public int portNum;//端口号
public Server(int portNum){
this.portNum = portNum;
}
public void innit(){
try {
server = new ServerSocket(portNum);
System.out.println("服务器开启成功!");
int socketNum = 0;
while(true){
Socket socket = server.accept();//被动等待客户端的连接
socketNum++;
System.out.println("第"+socketNum+"个客户端连接成功!!");
socketList.add(socket);//连接的客户端存放到集合里面
new RWThread(socket).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
class RWThread extends Thread{//接收和发送消息的线程
public Socket socket;
public RWThread(Socket socket){
this.socket = socket;
}
public void run() {
super.run();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
String message = br.readLine();
System.out.println(message);//接收客户端发来的消息
for(int i=0;isocketList.size();i++){//发送给所有连接的客户端
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socketList.get(i).getOutputStream()));
pw.println(message);
pw.flush();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
int portNum = 8888;//创建服务器的端口号
Server server = new Server(portNum);
server.innit();
}
}
客户端类:
package chat;
import java.io.*;
import java.net.*;
import java.util.*;
/*客户端类*/
public class Client {
public Socket socket;
public Client(){
Scanner sca = new Scanner(System.in);
try {
socket = new Socket("127.0.0.1",8888);//创建客户端
new ReadThread(socket).start();//开启读取从服务器端发来的信息
while(true){
PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
String message = sca.nextLine();
pw.println(message);//向服务器发送信息
pw.flush();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
System.out.println("错误:服务器未开启!!!");
}
}
class ReadThread extends Thread{//读取服务器发来信息的线程
public Socket socket;
public ReadThread(Socket socket){
this.socket = socket;
}
public void run() {
super.run();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
String message = br.readLine();
System.out.println(message);//输出信息
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Client client = new Client();
}
}
现打开服务器类,然后可以打开多个客户端进行聊天
Q2: 来个Java初学者做的QQ程序,要可以私聊的那种,有传文件的功能更好
首先你要明白QQ聊天程序要做的话分局域网和广域网两种,局域网相对比较简单,套接字编程即可满足。要群聊可以用广播或者组播,或者采取循环发送各个客户端,思想是无限循环监听,有新的连接就accept,返回一个新的套接字的标识,并开启一个新的线程去处理。这里套接字最好选用异步套接字,IO模型可以采用选择类型。私聊的话就很简单了啊,就只针对你要私聊对象的套接字标识去发送消息就可以了啊。文件传送仍然可以采用TCP通讯,发送数据块,可以定义大小为1024,或者2048等等,循环发送数据块。这里需要用到一些文件的操作,如获取文件大小,文件指针移动等。广域网聊天相对比较复杂,主要是采取一种叫做网络打洞的方式,具体可以网上差找资料。
Q3: java如何实现QQ私聊
这很简单吧,在服务器端维持一个hashtableIP,Socket之类的
私聊不就是两个对应IP的Socket通信问题
Q4: 怎样用java 编写简易qq聊天工具????
首先,学习java GUI编程,学习监听器。建议看马士兵的视频。然后上网上down源代码,分析类,确定类的属性和方法。第一遍,就是跟着源码敲一遍,然后分段看,一段一段的看懂,再实现。慢慢就会了。很有收获滴! 这是高仿QQ2012登录界面 源代码
Q5: Java网络编程怎么实现类似QQ的好友聊天功能
之前有实现过类似的功能,用socket通讯,然后序列化一个对象传过去
java实现qq交流代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于简单java实现聊天、java实现qq交流代码的信息别忘了在本站进行查找喔。







