网络编程技术文章

简介: 网络编程技术文章

网络编程


使用ip地址来确定目标主机,使用端口号来确定哪个进程

使用


UDP编程


原理

通过传输层,将数据转换为数据包发送

udp协议是无连接的、不可靠的

发送端步骤

  • 创建发送端的socket对象
  • 把要发送的数据封装成数据报包(五个参数的)
  • 利用send方法发送
  • close

接收端步骤

  • 创建接收端的socket对象
  • 创建用于接收的数据报包(此时是空包)
  • 利用receive方法去接收数据报包(接收完了后包里才有数据)
  • 解析数据报包
  • close

DatagramSocket

此类表示用来发送和接收数据报包的套接字。

构造方法

DatagramSocket(int port) 创建数据报套接字并将其绑定到本地主机上的指定端口。

成员方法

void receive(DatagramPacket p) 从此套接字接收数据报包。
void send(DatagramPacket p) 从此套接字发送数据报包。

DatagramPacket

此类表示数据报包。

构造方法

构建用法发送的数据报包

DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。

构建用于接收的数据报包

DatagramPacket(byte[] buf, int offset, int length) 构造 DatagramPacket,用来接收长度为 length 的包,在缓冲区中指定了偏移量。

成员方法

byte[] getData() 返回数据缓冲区。
int getLength() 返回将要发送或接收到的数据的长度。
int getOffset() 返回将要发送或接收到的数据的偏移量。

注意:如果要想实现互相聊天的功能,必须使用多线程,否则会产生只能你发一句然后我等待之后才能发送的情况,因为是串行的


TCP编程


原理

服务端创建一个ServerSocket,利用accept方法侦听客户端的连接,以此来获取Socket对象,可以从中获取输入输出流与客户端通信

客户端创建客户端的Socket对象,可以从中获取输入输出流与服务端通信

TCP协议是有连接的、可靠的;建立连接是在网际层

客户端步骤(Client)

  • 创建客户端Socket对象
  • 从中获取输入输出流
  • 从输入 输出流中读取 写入 数据
  • close

服务端步骤(Server)

  • 创建服务端的Socket对象 ServerSocket
  • 利用accept方法去建立连接,得到Socket对象
  • 从socket对象中获取输入 输出流
  • 可以利用输入输出流 读写数据
  • close

Socket

此类实现客户端套接字(也可以就叫“套接字”

构造方法

Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。

成员方法

InputStream getInputStream() 返回此套接字的输入流。
OutputStream getOutputStream() 返回此套接字的输出流。
void shutdownOutput() 禁用此套接字的输出流

socket.getInetAddress 可以获取正在通信的ip地址

ServerSocket

此类实现服务器套接字

构造方法

ServerSocket(int port) 创建绑定到特定端口的服务器套接字。

成员方法

Socket accept() 侦听并接受到此套接字的连接

必须要先启动服务端再启动客户端,否则会抛出连接异常

java.net.ConnectException: Connection refused: connect

socket的半关闭

shutdownOutput() 禁用流

在实现客户端上传文件,服务端给出反馈的时候,如果不禁用流的话会造成服务端一直等待客户端发送而不继续往下执行的情况,因为服务端无法知道客户端已经发送完毕,因此需要使用shutdownOutput() 关闭流来通知服务端,这就是半关闭。如果直接调用流的close方法的话,会直接造成全关闭导致连接断开

相关文章
|
2天前
|
云安全 安全 网络安全
云计算与网络安全:技术融合的未来之路
【10月更文挑战第38天】 在数字化浪潮中,云计算和网络安全成为支撑现代企业和个人数据安全的两大基石。本文将深入探讨云计算服务如何与网络安全技术相结合,保障信息安全,并分析面临的挑战及未来发展趋势。我们将通过实际案例,揭示云安全的最佳实践,为读者提供一条清晰的技术融合路径。
|
2天前
|
安全 网络安全 数据库
云计算与网络安全:技术融合的未来之路
【10月更文挑战第37天】本文将探讨云计算与网络安全的交汇点,揭示它们如何共同塑造信息安全的未来。我们将深入了解云服务的核心组件、网络安全的关键策略以及两者如何相互增强。通过分析当前的挑战和未来的趋势,本文旨在为读者提供一条清晰的路径,以理解并应对这一不断发展的技术领域。
|
4天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
22 5
|
5天前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战
【10月更文挑战第35天】本文将探讨云计算与网络安全的交叉点,包括云服务、网络安全和信息安全等技术领域。我们将深入了解云计算的基本概念,以及如何通过云服务实现网络安全和信息安全。同时,我们还将讨论云计算面临的安全挑战,并提出相应的解决方案。最后,我们将通过代码示例展示如何在云计算环境中实现网络安全和信息安全。
16 3
|
5天前
|
存储 安全 网络安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的深度剖析
【10月更文挑战第34天】本文将深入探讨云计算与网络安全的关系,包括云服务、网络安全、信息安全等技术领域。我们将通过实例和代码示例,解析云计算如何改变网络安全的格局,以及如何在云计算环境下保护信息安全。我们将从云计算的基本概念开始,然后深入到网络安全和信息安全的主题,最后通过代码示例来展示如何在云计算环境下实现网络安全和信息安全。
|
6天前
|
供应链 安全 网络安全
区块链技术与网络安全:机遇与挑战
区块链技术与网络安全:机遇与挑战
30 2
|
7天前
|
机器学习/深度学习 移动开发 自然语言处理
HTML5与神经网络技术的结合有哪些其他应用
HTML5与神经网络技术的结合有哪些其他应用
22 3
|
2天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务、网络安全和信息安全的技术领域
【10月更文挑战第38天】本文将深入探讨云计算与网络安全之间的关系,包括云服务、网络安全和信息安全等技术领域。我们将通过实例分析,了解如何保护云计算环境中的数据和应用程序,以及如何应对网络安全威胁。同时,我们还将讨论一些常见的网络安全攻击类型,并提出相应的防御策略。最后,我们将介绍一些实用的工具和技术,以帮助您更好地保护您的云计算环境。
|
5天前
|
监控 安全 网络安全
云计算与网络安全:技术融合下的挑战与机遇
【10月更文挑战第34天】在数字化转型的浪潮中,云计算已成为企业信息技术架构的核心。然而,随之而来的网络安全问题也日益突出。本文将探讨云计算服务中的网络安全挑战,分析信息安全的关键要素,并提供实用的安全策略和最佳实践。我们将通过具体案例,揭示如何在享受云计算带来的便利的同时,保障数据的安全性和完整性。
|
7天前
|
云安全 安全 网络安全
云计算与网络安全:技术融合下的安全挑战与应对策略
【10月更文挑战第33天】在数字化转型的浪潮中,云计算作为支撑现代企业IT架构的核心,其安全性成为业界关注的焦点。本文从云计算服务的基本概念出发,探讨了云环境下的网络安全风险,并分析了信息安全的关键技术领域。通过对比传统网络环境与云端的差异,指出了云计算特有的安全挑战。文章进一步提出了一系列应对策略,旨在帮助企业和组织构建更为坚固的云安全防护体系。最后,通过一个简化的代码示例,演示了如何在云计算环境中实施基本的安全措施。