需求:

  1. 模拟qq聊天功能:实现客户端与服务器(一对一)的聊天功能,客户端首先发起聊天,输入的内容在服务器端和客户端显示,然后服务器端也可以输入信息,同样信息在客户端和服务端显示。
  2. 提示:

    客户端

    1) 客户端编写聊天的方法chat()

    2) 要求使用BufferedReader与BufferedWriter缓冲类

    3) 编写用于测试的主方法调用chat()方法

    服务器端

    1) 编写提供服务的方法service()

    2) 编写用于测试的主方法调用service()方法

package Test1;

        import java.io.*;
import java.net.Socket; public class ChatClient {
public void chat(){
try {
Socket s = new Socket("localhost", 10086); while (true){
//获取输出流
OutputStream outputStream = s.getOutputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine(); outputStream.write(line.getBytes()); //获取服务器的反馈
InputStream inputStream = s.getInputStream();
byte[] bytes = new byte[1024];
int length = inputStream.read(bytes);
String string = new String(bytes, 0, length);
System.out.println("服务器反馈:"+string); }
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args)throws IOException {
new ChatClient().chat();
}
}
package Test1;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date; public class ChatServer {
public void service(){
try {
ServerSocket ss = new ServerSocket(10086); Socket s = ss.accept(); while (true){
String ip = s.getInetAddress().getHostAddress();
Date date = new Date(); InputStream inputStream = s.getInputStream();
byte[] bytes = new byte[1024];
int length = inputStream.read(bytes);
String s1 = new String(bytes, 0, length);
System.out.println(ip+" "+date);
System.out.println(s1); //给出反馈
OutputStream outputStream = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line =br.readLine(); outputStream.write(line.getBytes());
}
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) throws IOException{
new ChatServer().service();
}
}

TCP模拟QQ聊天功能的更多相关文章

  1. python模拟QQ聊天室(tcp加多线程)

    python模拟QQ聊天室(tcp加多线程) 服务器代码: from socket import * from threading import * s = socket(AF_INET,SOCK_S ...

  2. 模拟QQ聊天与视频聊天同时进行-------java基础知识总结

    前言:多线程的知识 代码: package com.day13.math; /** * 类说明 :模拟QQ聊天与视频聊天同时进行 * @author 作者 : chenyanlong * @versi ...

  3. 5 多线程 模拟qq聊天

    1.多线程思路 使用多线程完成一个全双工的QQ聊天程序 2.版本1:程序小框架 #1.收数据,然后打印 def recvData(): pass #2.检测键盘,发数据 def sendData(): ...

  4. socket 编程 TCP 实现简单聊天功能【转】

    转自:http://blog.csdn.net/liujia2100/article/details/9006479 版权声明:本文为博主原创文章,未经博主允许不得转载. 各个主要函数的功能: .so ...

  5. 调用QQ聊天功能

    [HTML]: <a href="javascript:void(0);" onclick="chatQQ()">咨询客服</a> fu ...

  6. 11 TCP实现QQ聊天

    1.客户端参考代码 #coding=utf-8 from socket import * # 创建socket tcpClientSocket = socket(AF_INET, SOCK_STREA ...

  7. 一键QQ聊天与一键加群QQ功能

    最新有项目要求,点击页面上的一个按钮,实现直接启动QQ聊天,添加QQ群的功能. 开始以为会很复杂,百度后发现QQ已经有考虑到这方面的需求,只需进入:QQ推广 -> 推广工具 就能看到如下界面

  8. MVC实现类似QQ的网页聊天功能-ajax(下)

    此篇文章主要是对MVC实现类似QQ的网页聊天功能(上)的部分代码的解释. 首先说一下显示框的滚动条置底的问题: 结构很简单一个大的div(高度一定.overflow:auto)包含着两个小的div第一 ...

  9. 模拟QQ系统设置面板实现功能

    业务需求: 基于网盘客户端的实现,原有网盘的设置面板无论从界面显示还是从业务需求都不能满足我们的正常需求.当前的要求是,模拟QQ系统设置的面板实现当前我们网盘中的基本配置功能.在完成这篇文章时已将基本 ...

随机推荐

  1. Python多线程爬取某网站表情包

    # 爬取网络图片import requestsfrom lxml import etreefrom urllib import requestfrom queue import Queue # 导入队 ...

  2. springMVC-4-处理模型数据

    返回模型数据(Model) index.jsp中 <h1>获取模型数据</h1> <a href="/model/test1">ModelAnd ...

  3. java命名规则/规范

    Java命名规则: 名称只能由字母.数字.下划线.$符号组成. 不能以数字开头,不能包含空格. 名称不能使用Java中的关键字. Java命名规范: 项目名全部小写:     project 包名全部 ...

  4. vue函数式组件详解

    本篇将详细介绍vue组件化之函数式组件,会用到以下api: Vue.component().Vue.extend().$createElement.patch(). 从事vue开发的小伙伴,平时组件化 ...

  5. 右键发送 (sendto),创建快捷方式到自定义的位置,不仅仅是复制,就像 发送到 桌面快捷方式 一样

    TL;DR 在 SendTo 文件夹里加上一文件夹的快捷方式后,在右键发送到这个文件夹的是这些文件的一个副本,实际上是一个复制的过程,有时候我们只希望是快捷方式,那就得另想办法了. 方案如下: 创建一 ...

  6. SaltStack 任意文件读写漏洞(CVE-2020-11652)

    漏洞影响 SaltStack < 2019.2.4 SaltStack < 3000.2 同CVE-2020-11651 poc git clone https://github.com/ ...

  7. input输入框只能输入正数和小数(保留小数点后两位)

    1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...

  8. 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了

    今天收到运营同学的一个 SQL,有点复杂,尤其是这个 SQL explain 都很长时间执行不出来,于是我们后台团队帮忙解决这个 SQL 问题,却正好发现了一个隐藏很深的线上问题. select a. ...

  9. 腾讯开源:Kotlin 高性能特效动画组件!

    先看一下效果展示: 1. VAP VAP(Video Animation Player)是企鹅电竞开发,用于播放酷炫动画的实现方案. 相比Webp, Apng动图方案,具有高压缩率(素材更小).硬件解 ...

  10. 【Lua篇】静态代码扫描分析(四)规则检查

    一.前言 通过前面三篇文章已经初步实现了将Lua源代码文件读取解析成语法树,现在就可以通过得到的语法树进行指定规则的代码扫描检查.下图简单列举了一下单个Lua文件内部的语法关系情况(注意并非真正的类图 ...