请教大家一个问题 如何实现多用户聊天?就是多个人把信息发给服务器后,服务器在把这些信息返回给每一个人。这个如何实现?苍天啊。。想不通!老师让显示的格式是这样的,在聊天窗口中应该显示这个人的名字和他发送信息的内容 ,我就把这2个东西又封在一个类里了,直接把这个对象发给服务器,那么服务器应该怎么暂时的保存每个用户发的这个对象,然后又如何把它返回给每一个人呢?请教啊!!!!!不明白啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 客户端的话,平常怎么做还怎么做。服务器端的话就需要有个Vector来放置所有客户端请求的socket。当服务器端接收了客户端的请求后,就需要将这个socket放置在Vector中,然后服务器端对客户发来的信息对Vertor中的所有线程进行广播。这样每个客户端就行看到了。要是理解不了的话,明天写给你。 大概思路好像明白,不过不知道应该如何实现。package ldci.com.chatApp.server;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class StartServer { private ServerSocket server; public StartServer(){ try { // 1. 建立端口,绑定服务 server = new ServerSocket(7655); new ServerThread().start(); } catch (IOException e) { System.out.println("端口占用"+e); } } // 2.写内容部类,进行多客户监听 class ServerThread extends Thread{ public void run(){ for(;;){ // 3.开始监听,监听到套接字,并传递给处理套接字类 System.out.println("开始监听"); try { Socket fromClientSocket = server.accept(); new ProcessRequest(fromClientSocket); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String[] args) { StartServer myServer = new StartServer(); }}这是我写的服务器启动那的类,你说的存入Vector是在accept后吗? 这种差不多的代码网上应该能够找到很多,有java实现的,有c++实现的都有。 http://blog.csdn.net/closewbq/archive/2010/07/21/5751738.aspx去吧,刚写的! 关于接口 JAVA SE 和 EE的环境变量搭配问题 这样写的异常处理为什么没有编译错误? 冇得结怎末回事? 如何用java解压一个带密码zip文件(密码是知道的) 网络组播问题,在线等待 200分 我想把字体变成又粗有斜,这样写对的,但不理解 | 在这里的意思 java新手问题~ 求各位大神帮帮忙 javax.swing.swingUtilities.invokeLater方法 java 考试系统 下一题功能如何实现,跪求高手,要随机不重复 java中如何把string型的001转为int型的001 问一个关于IO流的问题
服务器端的话就需要有个Vector来放置所有客户端请求的socket。当服务器端接收了客户端的请求后,就需要将这个socket放置在Vector中,然后服务器端对客户发来的信息对Vertor中的所有线程进行广播。这样每个客户端就行看到了。
要是理解不了的话,明天写给你。
package ldci.com.chatApp.server;import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;public class StartServer {
private ServerSocket server;
public StartServer(){
try {
// 1. 建立端口,绑定服务
server = new ServerSocket(7655);
new ServerThread().start();
} catch (IOException e) {
System.out.println("端口占用"+e);
}
}
// 2.写内容部类,进行多客户监听
class ServerThread extends Thread{
public void run(){
for(;;){
// 3.开始监听,监听到套接字,并传递给处理套接字类
System.out.println("开始监听");
try {
Socket fromClientSocket = server.accept();
new ProcessRequest(fromClientSocket);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
StartServer myServer = new StartServer();
}}
这是我写的服务器启动那的类,你说的存入Vector是在accept后吗?
去吧,刚写的!