C/C++教程

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

本文主要是介绍网络编程TCP/IP通信协议(自学用),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

    • 第一天:网络编程
    • 第二天:IP与端口
    • 第三天: URL
    • 第四天:UDP实现
    • 第五天: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、关闭之间添加如下代码:

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

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

在这里插入图片描述

这篇关于网络编程TCP/IP通信协议(自学用)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!