网络编程

day25


内容

  • 软件架构CS/BS
  • 网络通信三要素
  • TCP通信
  • Socket套接字
  • ServerSocket

一.网络编程入门

1.1软件结构

  • c/s结构:Client/Server结构,客户端与服务器结构

在这里插入图片描述

  • B/S结构:全称为Browser/Server结构,浏览器和服务器结构
    在这里插入图片描述

网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

1.2网络通信协议

  • TCP/IP协议:传输控制协议/因特网互联协议,定义了如何接入因特网以及数据之间的传输的标准.

他的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求

在这里插入图片描述

1.3协议分类

通信的协议还是比较复杂的, java.net 包中包含的类和接口,它们提供低层次的通信细节。

java.net 包中提供了两种常见的网络协议的支持

  • TCP:TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据

在这里插入图片描述
请求连接—响应—确认信息

在这里插入图片描述

  • UDP:UDP是一个面向与无连接的协议,传输数据时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直接发送。

每个数据包的大小限制在64k以内。它是不可靠协议,因为无连接,所以传输速度快,但是容易丢失数据。日常应用中,例如视频会议、QQ聊天等。

1.4 网络编程三要素

协议

IP地址

  • IP地址:互联网协议地址,P地址用来给一个网络中的计算机设备做唯一的编号,假如我们把“个人电脑”比作“一台电话”的话,那么“IP地址”就相当于“电话号码”
  • IP地址分类:

在这里插入图片描述

常用命令

  • 查看本机IP地址 ipconfig
  • 检查网络是否连通 ping ip地址

特殊的ip地址

  • 本机IP地址:127.0.0.1,localhost

端口号

网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?

如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

端口号:用两个字节表示的整数,它的取值范围是0 ~ 65535。
其中,0 ~ 1023之间的端口号用于一些知名的网络服务和应用
普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。
协议 + IP地址 + 端口号就可以标识网络中的进程了

二 TCP通信程序

2.1概述

通信的两端严格区分客户端,服务端

两端通信时的步骤:

  1. 服务端需要事先启动,等待客户端的连接
  2. 客户端主动连接服务器端,连接成功才能通信,服务端不可以主动连接客户端

Java中

  1. 客户端:java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。
  2. java.net.ServerSocket 类表示。创建 ServerSocket 对象,相当于开启一个服务,并等待客户端的连接

2.2Socket类

Socket 类:该类实现客户端套接字,套接字指的是两台设备之间通讯的端点。

构造方法
public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指定的host是null ,则相当于指定地址为回送地址。

在这里插入图片描述

成员方法

  • 返回此套接字的输入流
  • 返回此套接字的输出流
  • 关闭套接字
  • 禁用此套接字

2.3 ServerSocket类

ServerSocket 类:这个类实现了服务器套接字,该对象等待通过网络的请求

构造方法

在这里插入图片描述

成员方法

  • 侦听并接受连接

2.4简单的TCP网络程序

  1. 服务端: 启动 创建ServerSocket对象,等待连接
  2. 客户端:启动,创建Socket对象,请求连接
  3. 服务端:接受连接 调用accept方法 返回一个Socket对象
  4. Socket对象,获取OutoutStream,向服务端写出数据
  5. Scoket对象,获取InputStream,读取客户端发送的数据

在这里插入图片描述

  1. 服务端:Socket对象获取OutputStream,向客户端写数据.
  2. 客户端:Scoket对象,获取InputStream,解析回写数据
  3. 客户端:释放资源 断开连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bussyman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值