关于用jsp做聊天室,请大家给点好的意见 如题不要定时刷新的那种效果好、简便如果哪位朋友有,给我发一份不胜感激![email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用APPLET?那不可能每个客户端都安装JRE吧 //文件名:ChatClient.javaimport java.net.*;import java.io.*;/** * <p>Title: 网络聊天吧</p> * <p>Description: 这是一个使用数据报通讯方式的聊天程序的客户端</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: ChatClient.java</p> * @version 1.0 */public class ChatClient{ private DatagramSocket s; private InetAddress hostAddress; private byte[] buf = new byte[1000]; private DatagramPacket dp = new DatagramPacket(buf,buf.length);/** *<br/>方法说明:构造器,这里实现接收用户输入和与服务器通讯 *<br/>输入参数: *<br/>返回类型: */ public ChatClient(){ try{ //使用构造器,创建使用本机任何可用端口的数据包Socket s = new DatagramSocket(); //获取本地IP hostAddress = InetAddress.getByName("localhost"); System.out.println("Client start............"); while(true){ String outMessage =""; //读取输入 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); try{ outMessage = stdin.readLine(); }catch(IOException ie){ System.err.println("IO error!"); } //如果输入“bye”则表示退出程序 if(outMessage.equals("bye")) break; String outString = "Client say: "+ outMessage; byte[] buf = outString.getBytes(); //打包数据,发送数据 DatagramPacket out = new DatagramPacket(buf,buf.length,hostAddress,ChatServer.PORT); s.send(out); //等待服务器返回 s.receive(dp); String rcvd = "rcvd from "+ dp.getAddress() + ", " + dp.getPort() + ": "+ new String(dp.getData(),0,dp.getLength()); System.out.println(rcvd); } }catch(UnknownHostException e){ System.out.println("Can;t open socket"); System.exit(1); }catch(SocketException e){ System.out.println("Can;t open socket"); e.printStackTrace(); System.exit(1); }catch(IOException e){ System.err.println("Communication error"); e.printStackTrace(); System.exit(1); }catch(Exception e){ System.err.println("Communication error"); e.printStackTrace(); System.exit(1); } System.out.println("ChatClient over"); }/** *<br/>方法说明:主方法 *<br/>输入参数: *<br/>返回类型: */ public static void main(String[] args){ new ChatClient(); }} import java.net.*;import java.io.*;import java.util.*;/** * <p>Title: 网络聊天吧</p> * <p>Description: 使用数据报创建的聊天服务器</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: ChatServer.java</p> * @version 1.0 */public class ChatServer{ static final int PORT = 4000;//设置服务端口 private byte[] buf = new byte[1000]; private DatagramPacket dgp =new DatagramPacket(buf,buf.length); private DatagramSocket sk;/** *<br/>方法说明:服务端构造器,实现读取用户输入和通讯 *<br/>输入参数: *<br/>返回类型: */ public ChatServer(){ try{ //实例化数据报 sk = new DatagramSocket(PORT); System.out.println("Server start................."); while(true){ //等待接收 sk.receive(dgp); //获取接收信息 String rcvd = new String(dgp.getData(),0,dgp.getLength())+ ", from address: "+ dgp.getAddress()+ ", port: "+ dgp.getPort(); System.out.println(rcvd); String outMessage =""; //读取输入 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); try{ outMessage = stdin.readLine(); }catch(IOException ie){ System.err.println("IO error!"); } String outString = "Server say: "+ outMessage; //拷贝字符到缓存 byte[] buf = outString.getBytes(); //打包数据,发送回信息。 DatagramPacket out = new DatagramPacket(buf,buf.length,dgp.getAddress(),dgp.getPort()); sk.send(out); } }catch(SocketException e){ System.err.println("Can't open socket"); System.exit(1); }catch(IOException e){ System.err.println("Communication error"); e.printStackTrace(); System.exit(1); } } public static void main(String[] args){ new ChatServer(); }} LumaQQ就是用java编的,而且是开源的,lz可以去看看。 通过套接字写聊天室不就要写个客户端程序了吗,我不想让用户安装一个客户端程序或者是jre,我现在只想通过jsp来实现实时聊天功能,但是就不知道从哪里下手! 我前段时间写了一个是ajax+jsp+servlet+oralce有用户注册,消息是写在内存里有兴趣的话联系我QQ9221115 不过使用jsp做的聊天室确实不是很好做啊我看了些资料但是源代码都没有多少 一个java小问题 关于时间格式转换 再问类的访问权限 SOCKET问题 com.mysql.jdbc.CommunicationsException这个错误是什么原因引起的 考试中遇到的几个问题,挺郁闷的,解释不了。 解释 各位帮我看看这个程序出错在哪?我按照书上检察了n遍了。 怎样判断输入的字符串是否是“YYYY-MM-DD”格式的? 新人求解答 求购跪求:数据挖掘之Apriori算法源代码,需用C++/JAVA语言编辑 java 乱码求助
那不可能每个客户端都安装JRE吧
import java.net.*;
import java.io.*;
/**
* <p>Title: 网络聊天吧</p>
* <p>Description: 这是一个使用数据报通讯方式的聊天程序的客户端</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: ChatClient.java</p>
* @version 1.0
*/
public class ChatClient{
private DatagramSocket s;
private InetAddress hostAddress;
private byte[] buf = new byte[1000];
private DatagramPacket dp = new DatagramPacket(buf,buf.length);/**
*<br/>方法说明:构造器,这里实现接收用户输入和与服务器通讯
*<br/>输入参数:
*<br/>返回类型:
*/
public ChatClient(){
try{
//使用构造器,创建使用本机任何可用端口的数据包Socket
s = new DatagramSocket();
//获取本地IP
hostAddress = InetAddress.getByName("localhost");
System.out.println("Client start............");
while(true){
String outMessage ="";
//读取输入
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
try{
outMessage = stdin.readLine();
}catch(IOException ie){
System.err.println("IO error!");
}
//如果输入“bye”则表示退出程序
if(outMessage.equals("bye")) break;
String outString = "Client say: "+ outMessage;
byte[] buf = outString.getBytes();
//打包数据,发送数据
DatagramPacket out = new DatagramPacket(buf,buf.length,hostAddress,ChatServer.PORT);
s.send(out);
//等待服务器返回
s.receive(dp);
String rcvd = "rcvd from "+ dp.getAddress() + ", " + dp.getPort() +
": "+ new String(dp.getData(),0,dp.getLength());
System.out.println(rcvd);
}
}catch(UnknownHostException e){
System.out.println("Can;t open socket");
System.exit(1);
}catch(SocketException e){
System.out.println("Can;t open socket");
e.printStackTrace();
System.exit(1);
}catch(IOException e){
System.err.println("Communication error");
e.printStackTrace();
System.exit(1);
}catch(Exception e){
System.err.println("Communication error");
e.printStackTrace();
System.exit(1);
}
System.out.println("ChatClient over");
}
/**
*<br/>方法说明:主方法
*<br/>输入参数:
*<br/>返回类型:
*/
public static void main(String[] args){
new ChatClient();
}
} import java.net.*;
import java.io.*;
import java.util.*;
/**
* <p>Title: 网络聊天吧</p>
* <p>Description: 使用数据报创建的聊天服务器</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: ChatServer.java</p>
* @version 1.0
*/
public class ChatServer{
static final int PORT = 4000;//设置服务端口
private byte[] buf = new byte[1000];
private DatagramPacket dgp =new DatagramPacket(buf,buf.length);
private DatagramSocket sk;
/**
*<br/>方法说明:服务端构造器,实现读取用户输入和通讯
*<br/>输入参数:
*<br/>返回类型:
*/
public ChatServer(){
try{
//实例化数据报
sk = new DatagramSocket(PORT);
System.out.println("Server start.................");
while(true){
//等待接收
sk.receive(dgp);
//获取接收信息
String rcvd = new String(dgp.getData(),0,dgp.getLength())+
", from address: "+ dgp.getAddress()+
", port: "+ dgp.getPort();
System.out.println(rcvd);
String outMessage ="";
//读取输入
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
try{
outMessage = stdin.readLine();
}catch(IOException ie){
System.err.println("IO error!");
}
String outString = "Server say: "+ outMessage;
//拷贝字符到缓存
byte[] buf = outString.getBytes();
//打包数据,发送回信息。
DatagramPacket out = new DatagramPacket(buf,buf.length,dgp.getAddress(),dgp.getPort());
sk.send(out);
}
}catch(SocketException e){
System.err.println("Can't open socket");
System.exit(1);
}catch(IOException e){
System.err.println("Communication error");
e.printStackTrace();
System.exit(1);
}
}
public static void main(String[] args){
new ChatServer();
}
}
有用户注册,消息是写在内存里
有兴趣的话联系我QQ9221115
我看了些资料
但是源代码都没有多少