ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

网络编程TCP/IP通信协议(自学用)

2021-11-25 17:58:53  阅读:160  来源: 互联网

标签:登录 实现 IP 通信协议 TCP 接字 数据包 客户端


目录

第一天:网络编程

在这里插入图片描述

第二天:IP与端口

在这里插入图片描述
上图中的localhost是127.0.0.1的域名
InetAddress是JDK中的ip处理类
在这里插入图片描述

jdk的API中文文档
在这里插入图片描述
运行结果:
在这里插入图片描述
端口号(port),名字(hostname),IP地址的关系

第三天: URL

在这里插入图片描述

  1. 访问页面必须得遵守http协议
  2. 你访问的页面在浏览器中看到的任何页面其实大都是html页面
  3. 在浏览器中访问你得输入某个页面的索引、路径或者说资源地址(url)
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

运行结果:

在这里插入图片描述

第四天:UDP实现

在这里插入图片描述
在这里插入图片描述
套接字:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其实很好理解:
就像是我想给你邮一个水杯,但是我不可能就一个水杯邮给你,我是不是要把它装在盒子里面,盒子里面填充一些泡沫,然后我还要在盒子上贴一个你的地址,这就是封装啊,反之就是拆封。
有点抽象
一般什么时候,什么场景下用到socket呢?
就是你要给网站或者app实现一个聊天功能,进行网络数据传输
在这里插入图片描述
DatagramSocket:
此类表示用于发送和接收数据报包的套接字。
数据报套接字是分组传送服务的发送或接收点。 在数据报套接字上发送或接收的每个数据包都是单独寻址和路由的。 从一台机器发送到另一台机器的多个分组可以被不同地路由,并且可以以任何顺序到达。
在这里插入图片描述

DatagramPacket
该类表示数据报包。
数据报分组用于实现无连接分组传递服务。 每个消息仅根据该数据包中包含的信息从一台机器路由到另一台机器。 从一台机器发送到另一台机器的多个数据包可能会以不同方式路由,并且可能以任何顺序到达。 无法保证数据包传输。

在这里插入图片描述
通过参数的不同来区分作用,接受和发送…

UDP实现的基本流程:
发送端定义:
在这里插入图片描述
发送端实现:
在这里插入图片描述

接收端定义:

在这里插入图片描述
接收端实现:
在这里插入图片描述
运行结果:
在这里插入图片描述
若在接收端加入如下代码:
在这里插入图片描述
输出结果:
在这里插入图片描述

里面有一些不熟悉的类或者函数可以查阅上面JDK的API文档。

第五天:TCP实现

TCP协议是基于IO流的。
在这里插入图片描述
所以在TCP协议下,我要定义客户端,就用socket这个类;定义服务端用serveSocket类
我往服务器发送数据,就是数据从我这儿写出去,那对我来说就是一个输出的过程

客户端定义与实现:
在这里插入图片描述
注意:上面这张图中的:
在这里插入图片描述
127.0.0.1和6666是服务器端的地址和端口
Class Socket:该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通信的端点。
在这里插入图片描述
服务器端定义与实现:
在这里插入图片描述

Class ServerSocket:该类实现服务器套接字。 服务器套接字等待通过网络进入的请求。 它根据该请求执行某些操作,然后可能将结果返回给请求者。
在这里插入图片描述注意:运行的时候,要先运行服务器,再运行客户端。

第六天:单向登录&双向登录

单向登录:
在这里插入图片描述

客户端:
在这里插入图片描述
服务端:
在这里插入图片描述
在这里插入图片描述
因为要判断登录时输入的用户名和密码是否正确,所以要在//3.io这一部分后面加入校验流程:
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述
双向登录:也就是实时地将单向登录的服务器的登录结果传输到客户端,然后客户端接收到结果。
客户端:
在2、io和3、关闭之间添加如下代码:

在这里插入图片描述
服务端:

在这里插入图片描述
将上面这部分代码修改为:

在这里插入图片描述

标签:登录,实现,IP,通信协议,TCP,接字,数据包,客户端
来源: https://blog.csdn.net/CHUANZExiaodaima/article/details/121533598

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有