网络编程技术文章

简介: 网络编程技术文章

网络编程


使用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方法的话,会直接造成全关闭导致连接断开

相关文章
|
3天前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战
【6月更文挑战第20天】本文旨在探讨云计算环境下的网络安全问题,分析云服务模型中的安全挑战,并提出相应的信息安全策略。通过研究当前云服务供应商的安全措施和存在的漏洞,文章强调了在设计、部署及运维阶段应用最佳实践的必要性。此外,还讨论了加密技术和身份管理在提升云环境安全性中的作用,以及如何通过合规性框架来确保数据保护和隐私。
|
1天前
|
云安全 安全 网络安全
云计算与网络安全:技术演进与挑战
【6月更文挑战第22天】在数字化浪潮的推动下,云计算已成为企业信息技术架构的核心。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,分析当前云服务中存在的安全风险,并介绍信息安全的最佳实践和未来发展趋势。通过深入分析,旨在为读者提供对云计算与网络安全交织领域的全面理解。
|
1天前
|
机器学习/深度学习 安全 网络安全
云计算与网络安全:技术融合的未来之路
【6月更文挑战第22天】在数字化浪潮的推动下,云计算已成为企业信息技术架构的核心。然而,随着云服务的广泛采纳,网络安全问题也日益凸显。本文将探讨云计算与网络安全之间的相互作用,分析当前云服务中存在的安全挑战,并提出相应的解决策略。我们将深入讨论数据加密、访问控制、威胁检测等关键技术,并展望未来云计算和网络安全技术的发展趋势,以期为业界提供参考和指导。
12 7
|
2天前
|
缓存 安全 Java
【技术前沿】JAVA网络编程黑科技:URL与URLConnection的创新应用,带你飞越极限!
【6月更文挑战第22天】Java的URL和URLConnection在现代网络编程中扮演关键角色,不仅用于基本HTTP请求,还在微服务(弹性自动化调用)、智能缓存策略、异步处理和安全增强方面展现创新应用。例如,它们支持动态服务发现、HTTP缓存控制、非阻塞I/O和HTTPS加密,助力开发者构建高效、安全的网络解决方案。通过掌握这些技术,可以提升项目性能,应对云计算和大数据时代的挑战。
|
3天前
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
【6月更文挑战第20天】在数字化浪潮推动下,云计算服务已成为企业IT架构的核心。然而,随着云服务的普及,网络安全威胁也日益增多。本文将探讨云计算环境下的网络安全挑战,分析信息安全技术如何应对这些挑战,并讨论云服务提供商和企业在保障数据安全方面的责任与策略。通过技术性案例分析,揭示云计算与网络安全之间的微妙平衡,为读者提供深入的行业见解。
|
3天前
|
存储 安全 网络安全
云计算与网络安全:技术融合下的挑战与机遇
【6月更文挑战第20天】随着云计算技术的迅猛发展,企业和个人越来越依赖云服务来存储和处理数据。然而,这也带来了新的网络安全挑战。本文将从技术角度深入探讨云计算环境下的网络安全问题,包括云服务的安全性、网络攻击的演变以及信息安全的最佳实践。我们将分析当前云服务中存在的安全漏洞,探讨如何通过技术和策略的结合来提高云环境的安全性,并预测未来云计算与网络安全领域的发展趋势。
|
4天前
|
存储 安全 网络安全
云计算与网络安全:技术创新与挑战
云计算与网络安全作为当今信息技术领域的热门话题,正在不断演进和发展。本文将从云服务、网络安全和信息安全等多个技术领域展开讨论,探索其中的技术创新与挑战。
|
3天前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战
随着云计算技术的迅速发展,其安全性问题也日益凸显。本文从云服务、网络安全和信息安全三个角度出发,探讨了云计算与网络安全的关联性及其面临的挑战。首先,介绍了云计算的基本概念和服务模型,然后分析了网络安全的重要性以及在云计算环境下的安全威胁,最后提出了加强云计算环境下的信息安全策略和技术的建议。通过深入分析,本文旨在为读者提供对云计算与网络安全关系的全面理解,以及应对策略的参考。
12 0
|
3天前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战应对
当今数字化时代,云计算和网络安全已经成为科技领域的热门话题。本文将探讨云计算和网络安全在技术融合中的重要性以及面临的挑战,从云服务、网络安全、信息安全等多个角度进行分析,并提出相应的解决方案。
|
4天前
|
前端开发 Java 关系型数据库
基于JSP技术的网络视频播放器
基于JSP技术的网络视频播放器

热门文章

最新文章