一 灵感:
在2022年的暑假,也就是我即将迈进高三的那个暑假,我并没有察觉自己应该要学习了,还是和过往的暑假一样玩着王者荣耀,凌晨2点睡觉,中午12点起床。我依稀记得这种状态一直持续到8月19。然而离开学还有6天时。我肚子开始剧烈的疼痛。想了一切可以的办法来恢复但是无极于终。我上百度去搜索,搜到了些眉目,我也进入了济南一家肠胃医院的网站。下面一幅图就是我咨询的聊天。那么你知道这种技术是怎么实现的吗?就是基本的网上聊天。还有一些咨询网站的客服聊天。
二 通信基本概念--实现网上聊天理论
计算机网络
①我们目的是为了写出一个后台聊天,为什么还要了解计算机网络呢?因为聊天的本质就是在计算机网络下进行的。
②何为计算机网络?通过百科搜索我们能查询到计算机网络其实就是一些相互连接的、以资源共享为目的的、自治的计算机的集合。通俗点讲就是计算机网络就像一个巨大的邮局,不同的计算机就像不同的信箱,通过电线或无线信号来传递信息。
③通信就要用各种协议比如早期的http协议和更加安全的Https协议(https经过加密和身份验证)。通信协议就像是一套规则和标准,确保计算机网络中的设备能够正确地发送和接收信息。它定义了数据如何被封装、地址信息如何被添加、以及错误如何被检测和纠正等。协议就是不同计算机遵循的规则。
④https和http只不过是应用层协议我们常见的两种。还有很多这里就不一一赘述。下面要讲的TCP,UDP是传输层的协议与我们今天要讲的聊天密切相关。
⑤每个计算机都有它的IP就是地址。有各自的IP我们才能传送数据。IPv6格式能分配的地址非常多据说可以为地球的每一粒沙子分配地址。
⑥端口就是用来区分每个软件或进程的。在下面代码中我们会用到。
⑦接下来的测试将在本地进行。要用到特殊地址127.0.0.1。
三 TCP
TCP实现聊天:分为客户端和服务端。客户端用来构造连接,发送信息。服务端用来接受信息,输出信息。
我们用TCP实现简单文字传输:
//客户端
package chat;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClientDemo1 {
public static void main(String[] args) {
try {
//获取服务端的地址
InetAddress serverIp = InetAddress.getByName("127.0.0.1");
int port = 9999;
//创见一个Socket连接
Socket socket = new Socket(serverIp, port); //一步化简--》 Socket socket = new Socket(InetAddress.getName(""), 5555);
//发送信息创建io流
OutputStream os=socket.getOutputStream();
os.write("你好".getBytes());
os.close();
} catch (Exception e) {