求一个web完整的JAVA聊天室开源代码!有注释的话就更好了,感激不尽 10

求一个web完整的JAVA聊天室开源代码!有注释的话就更好了,感激不尽... 求一个web完整的JAVA聊天室开源代码!有注释的话就更好了,感激不尽 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
匿名用户
2017-06-24
展开全部
服务器的:
package liaotian;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class server {

public server() {
try {
//设置sever端的链接
ServerSocket s = new ServerSocket(6667);//创建一个ServerSocket套接字对象,并绑定在6667端口上
Socket ss = s.accept();//声明一个Socket对象
//实例化输出流
OutputStream out = ss.getOutputStream();
DataOutputStream dout = new DataOutputStream(out);
//实例化输入流
InputStream in = ss.getInputStream();
DataInputStream din = new DataInputStream(in);
System.out.print(din.readUTF() + "!");
dout.writeUTF("你已经连接到服务器" + "\n" + "你的地址:" + ss.getInetAddress()
+ "\n" + "你的链接端口:" + ss.getLocalPort() + "\n");
//实例化两个线程的对象并启动线程
new ReadMessage(din).start();
new SendMessage(dout).start();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new server();
}
}
// 接受客户端信息
class ReadMessage extends Thread {
private DataInputStream din;
public ReadMessage(DataInputStream din) {
this.din = din;
}
public void run() {
String str;
try {
while (true) {
str = din.readUTF();
System.out.println(new Date().toLocaleString() + "客户端说:" + str);
if (str.equals("bye")) {
System.out.println("客户端下线!");
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 发出服务器信息
class SendMessage extends Thread {
private DataOutputStream dout;
public SendMessage(DataOutputStream dout) {
this.dout = dout;
}
public void run() {
InputStreamReader inr = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(inr);
String str;
try {
while (true) {
str = buf.readLine();
dout.writeUTF(str);
if (str.equals("bye")) {
System.out.println("服务器退出!");
System.exit(1);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

客户端:
package liaotian;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Date;

public class client {

public client() {
try {
//设置sever端的链接
Socket s = new Socket("127.0.0.1", 6667);//监听端口号6667
//实例化输入流
InputStream in = s.getInputStream();
DataInputStream din = new DataInputStream(in);
//实例化输出流
OutputStream out = s.getOutputStream();
DataOutputStream dout = new DataOutputStream(out);
dout.writeUTF("服务器你好!我是客户端");
System.out.println(din.readUTF());
//实例化两个线程的对象并启动线程
new Thread(new SenderMessage(dout)).start();
new Thread(new ReaderMessage(din)).start();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new client();
}
}
class ReaderMessage implements Runnable {
private DataInputStream din;
public ReaderMessage(DataInputStream din) {
this.din = din;
}
public void run() {
String str;
try {
while (true) {
str = din.readUTF();
System.out.println(new Date().toLocaleString() + "服务器说:" + str);
if (str.equals("bye")) {
System.out.println("服务器已经关闭,此程序自动退出!");
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class SenderMessage implements Runnable {
private DataOutputStream dout;
public SenderMessage(DataOutputStream dout) {
this.dout = dout;
}
public void run() {
String str;
InputStreamReader inf = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(inf);
try {
while (true) {
str = buf.readLine();
dout.writeUTF(str);
if (str.equals("bye")) {
System.out.println("客户端自己退出!");
System.exit(1);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦祥影视
2015-06-01 · 每天更新大量好看的视频
梦祥影视
采纳数:132 获赞数:201

向TA提问 私信TA
展开全部
给多少钱啊 这可不是一个小东西哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式