云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 用java实现聊天室基础互动

用java实现聊天室基础互动

  • 62 次阅读
  • 3 次下载
  • 2025/5/26 12:05:23

} }

}

}

} catch (Exception e) { }finally{ }

//处理客户端断开连接后的操作

//将该客户端的输出流从共享集合中删除 synchronized (allout) { allout.remove(pw); }

//广播该客户下线了

sendMessage(host+\下线了,当前在线人数:\人\/*

* 将针对该客户端的Socket关闭以释放资源 */ try { socket.close(); } catch (IOException e) { e.printStackTrace(); }

客户端代码如下:

package chat;

import java.io.BufferedReader; import java.io.InputStream;

import java.io.InputStreamReader; import java.io.OutputStream;

import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; /**

* 聊天室客户端 * @author hw

*TCP是传输层协议 *HTTP是应用层协议 */

public class Client { /* * java.net.Socket * 套接字 * Socket封装了TCP通讯协议,使用它可以基于 * TCP协议与远程计算机通讯。 */

private Socket socket;

Scanner scanner = new Scanner(System.in); /*

* 客户端的构造方法用来初始化客户端 * @throws Exception */

public Client() throws Exception{ try{ /*

* 实例化Socket时,构造方法要求传入 * 两个参数:

* 1:String,指定服务端的IP地址

* 2:int, 指定服务端打开的服务端口号 * 通过IP地址,可以找到服务端所在计算器 * 应用程序。 */

System.out.println(\正在连接服务端...\ socket = new Socket(\指自身电脑的IP;也可以换成其他电脑的IP System.out.println(\与服务端建立连接!\ }catch(Exception e){ //记录日志 throw e; } } /*

* 启动客户端方法 * * */

public void start(){ try{ /* * Socket提供了方法:

* OutputStrem getOutputStream()

* 该方法可以获取一个输出流,通过该输出流写出 * 的数据会发送远端,这里的远端就是服务器 */

OutputStream out = socket.getOutputStream();

OutputStreamWriter osw = new OutputStreamWriter(out,\ PrintWriter pw = new PrintWriter(osw,true); /*

* 通过Socket创建输出流,用于将消息发送给客户端 */ ServerHandler handler = new ServerHandler(); Thread t = new Thread(handler); t.start(); String scan = null; long lastSend = System.currentTimeMillis()-1000; while(true){ scan = scanner.next(); if(System.currentTimeMillis()-lastSend<1000){ System.out.println(\说话太快了,请稍等一下!\ }else{ pw.println(scan); lastSend = System.currentTimeMillis(); } } }catch(Exception e){ e.printStackTrace(); } }

public static void main(String[] args) { try{

//实例化客户端

Client client = new Client();

//启动客户端 client.start(); }catch(Exception e){ e.printStackTrace(); System.out.println(\客户端启动失败!\ } } /*

* 该线程用来接收服务端发送过来的每条消息 */

private class ServerHandler implements Runnable{ public void run(){

try {

} } }

InputStream in = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(in,\ BufferedReader br = new BufferedReader(isr); /* * 启动用来接收服务端发送过来的消息 * 的线程 * */ String scan = null; while ((scan = br.readLine())!=null){ System.out.println(scan); }

} catch (Exception e) { }

搜索更多关于: 用java实现聊天室基础互动 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} } } } } catch (Exception e) { }finally{ } //处理客户端断开连接后的操作 //将该客户端的输出流从共享集合中删除 synchronized (allout) { allout.remove(pw); } //广播该客户下线了 sendMessage(host+\下线了,当前在线人数:\人\/* * 将针对该客户端的Socket关闭以释放资源 */ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } <

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com