栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

网络编程&TCPUDP

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

网络编程&TCPUDP

网络编程 网络三要素:
  • ip:每台计算机的标识号
  • 端口:设备中应用程序的标识号
  • 协议:连接和通信的规则(UDP&TCP)

InetAddress类

此类表示Internet协议(IP)地址

方法名说明
static InetAddress getByName(String host)确定主机名称的IP地址。主机名称可以是及其名称,也可以是IP地址
String getHostName()获取此IP地址的主机名
String getHostAddress()返回文本显示中的IP地址字符串
UDP 发送数据

不可靠的网络协议。通信的两端各建立一个Socket对象,但只是发送、接收数据的对象。对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。
Java提供DatagramSocket类作为基于UDP协议的Socket
构造方法:

方法名说明
DatagramSocket()创建数据报套接字并将其绑定到本机地址上的任何可用端口
DatagramPacket(byte[] buf,int len,InetAddress add,int port)创建数据报包,发送长度为len的数据报到指定主机的指定端口

相关方法:

方法名说明
void send(DatagramPacket p)发送数据报包
void close()关闭数据报套接字
void receive(DatagramPacket p)从此套接字接受数据报包

发送数据的步骤:

  • 创建发送端的Socket对象
  • 创建数据并将其打包
  • 调用DatagramSocket对象的方法发送数据
  • 关闭发送端
接收数据

步骤:

  • 创建接收端的Socket对象
  • 创建一个数据包用于接受数据
  • 调用对象的方法接收数据
  • 解析数据包,并把数据在控制台显示
  • 关闭接收端

构造方法:

方法名说明
DatagramPacket(byte[] buf,int len)创建一个DatagramSocket用于接收长度为len的数据包

相关方法:

方法名说明
byte[] getData()返回数据缓冲区
int getLength()返回要发送的数据的长度或者接收数据的长度
TCP 发送数据

使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信
Java为客户端提供了Socket类,为服务器提供了ServerSocket类

构造方法:

方法名说明
Socket(InetAddress address , int port)创建流套接字并将其连接到指定IP指定端口号
Socket(String host,int port)创建流套接字并将其连接到指定主机上的指定端口号

相关方法:

方法名说明
InputStream getInputStream()返回此套接字的输入流
OutputStream getOutputStream()返回此套接字的输出流
接收数据

构造方法:

方法名说明
ServletSocket(int port)创建绑定到指定端口的服务器套接字

相关方法:

方法名说明
Socket accept()监听要连接到此的套接字并接受它
UDP和TCP的区别 TCP客户端发送

内存往网络写数据
通过三次挥手保证连接的可靠
关流的时候,多了往服务器写入结束标记的动作
最后一步断开连接,通过四次挥手协议保证连接终止

三次握手

客户端确保服务器端建立连接

四次挥手

为了让服务端有时间处理最后的数据

结束标记

Socket.shutdownOutput:仅关闭流,写一个结束标记
相关方法:

方法名说明
void shutdownInput()将此套接字的输入流放置在“流的末尾”
void shutdownOutput()禁止用此套接字的输出流
优化

服务器端接收到一张图片就关闭程序或接收到的下一张图片会覆盖上一张图片或无法同时跟多个客户端进行通信

UUID

设定唯一标识

UUID.randomUUID()方法生成随机的文件名

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号