//MyCilent.java
import java.io.*
import java.net.*
import javax.swing.*
import java.awt.*
import java.awt.event.*
public class MyClient extends JFrame implements ActionListener{
JTextField tf
JTextArea tx
JButton bt
PrintWriter out
public MyClient(){
tf=new JTextField(20)
tx=new JTextArea()
tx.setLineWrap(true)
tx.setWrapStyleWord(true)
JPanel pan=new JPanel()
JScrollPane jsp=new JScrollPane(tx)
add(jsp,"Center")
bt=new JButton("SEND")
bt.addActionListener(this)
pan.add(tf)
pan.add(bt)
add(pan,"South")
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0)
}
})
setTitle("THE CLIENT")
setSize(400,300)
setVisible(true)
try{
Socket socket=new Socket("127.0.0.1",1680)
out=new PrintWriter(socket.getOutputStream(),true)
InputStreamReader in = new InputStreamReader(socket.getInputStream())
BufferedReader sin=new BufferedReader(in)
String s
while(true){
s=sin.readLine()
tx.append("#Server Said#: "+s+"\n")
}
}catch(Exception e){
e.printStackTrace()
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bt){
tx.append("@Client Said@: "+tf.getText()+"\n")
out.println(tf.getText())
tf.setText("")
}
}
public static void main(String[] args){
MyClient mct = new MyClient()
}
}
//MyServer.java
import java.io.*
import java.net.*
import javax.swing.*
import java.awt.*
import java.awt.event.*
public class MyServer extends JFrame implements ActionListener{
JTextField tf
JTextArea tx
JButton bt
JScrollPane jsp
JPanel pan
PrintWriter out
public MyServer(){
tx=new JTextArea()
tx.setLineWrap(true)
tx.setWrapStyleWord(true)
jsp=new JScrollPane(tx)
tf=new JTextField(20)
bt=new JButton("SEND")
bt.addActionListener(this)
pan=new JPanel()
pan.add(tf)
pan.add(bt)
add(pan,"South")
add(jsp,"Center")
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0)
}
})
setTitle("THE SERVER")
setSize(400,300)
setVisible(true)
try{
ServerSocket server = new ServerSocket(1680)
Socket socket = server.accept()
InputStreamReader in = new InputStreamReader(socket.getInputStream())
BufferedReader sin=new BufferedReader(in)
out=new PrintWriter(socket.getOutputStream(),true)
while(true){
String s=sin.readLine()
tx.append("@Client Said@: "+s+"\n")
}
}catch(Exception e){
e.printStackTrace()
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==bt){
String st = tf.getText()
tx.append("#Server Said#: "+st+"\n")
out.println(st)
tf.setText("")
}
}
public static void main(String[] args){
MyServer msr = new MyServer()
}
}
呵呵,楼主您好!要用Java做聊天室说简单也不简单,但是说难呢也不难.说简单点,就是会话跟踪技术(我个人这样理解).要做聊天室,您需要
使用到的工具: tomcat 服务器(因为是免费的,其他也可以哦,呵呵).
Myeclipse(sun公司提供的编写Java程序的工具,别说你不知道哈,
哪样的话我就晕倒了哦,呵呵)
页面框架的设计:index.jsp(聊天室主页面)index_top.jsp(聊天室的顶部页面)
usersonline.jsp(在线人数的统计及显示页面) sendMessage.jsp(发送信息的页面)
showMessage.jsp(显示聊天信息的页面)register.jsp(用户注册的页面)
login.jsp(用户登录页面)
当然,这是最简单的设计方式咯.您也可以设计得更好点.
页面介绍与功能:
index.jsp 主要是聊天室的主页面.由上中下3个框架组成,中间部分在分为
左右2个框架.实际上index.jsp就是一个由于5个框架组成的页面
顶部框架:放index_top.jsp页面.可以设计自己聊天室的特色(比如说:logo)
中间部分的左边框架:showMessage.jsp 显示聊天的信息
中间部分的右边框架:usersonline.jsp(在线人数的统计及显示页面)
底部框架:sendMessage.jsp 这个发送信息的jsp页面.不多说吧
聊天室的框架的设计大楷就是这样子咯
实现聊天:
1.编写一个servlet,用户处理的信息(包括验证用户是否登录和聊天信息)。
2.用户发送信息之后,将发送的信息存放到Application中(群聊)(放在session中就是私聊)
3.显示信息的页面每个XX秒中获取session或者Application中的数据显示出来就OK了
更多的东西还是需要您学习Ajax之后再做,会有不一样的效果哦。祝您成功哟.呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)