买空间做网站什么软件可以推广自己的产品

news/2025/10/6 15:26:25/文章来源:
买空间做网站,什么软件可以推广自己的产品,网站建设 网页设计 网站制作,下载百度2023最新版【Java网络编程02】套接字编程 1. Socket套接字 概念#xff1a;Socket套接字#xff0c;就是系统提供用于实现网络通信的技术#xff0c;是基于TCP/IP协议的网络通信基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 分类#xff1a; 我们可以把Socket套接字…【Java网络编程02】套接字编程 1. Socket套接字 概念Socket套接字就是系统提供用于实现网络通信的技术是基于TCP/IP协议的网络通信基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 分类 我们可以把Socket套接字分为两类 流套接字使用传输层TCP协议 TCP即Transmission Control Protocol传输控制协议 以下为TCP的特点细节后续有专门章节解释 有连接的可靠传输面向字节流的全双工的 数据报套接字使用传输层UDP协议 UDP即User Datagram Protocol用户数据报协议 一下为UDP的特点细节后续有专门章节解释 无连接的不可靠传输面向数据报全双工 这里简单介绍一些相关概念 面向字节VS面向数据报 这里与文件流中的字符流与字节流很类似面向字节表明网络传输数据是以字节为单位的而面向数据报表明UDP传输依靠UDP数据报进行传输稍后我们在代码中会体现 全双工VS半双工 半双工通信双方基于管道进行传输但是数据只能单向流动如图所示 全双工通信双方可以实现数据的双向流动如图所示 2. UDP数据报套接字编程 2.1 相关API 在运用UDP进行网络编程之前我们需要先熟悉UDP套接字编程相关API的使用只有掌握了这些API工具才能更好地进行编程的实现我们主要学习的有两个类DatagramSocketDatagramPacket DatagramSocketOS提供了网络编程所需的API也叫做Socket API而Java又进行了一层封装使用提供的类DatagramSocket就可以实现对于网卡等硬件设备文件的读写操作。DatagramPacket前面我们有介绍过UDP协议是面向数据报的因此网络传输单位不是字节而是数据报Java提供类DatagramPacket相当于数据报的抽象因此实例化该对象相当于构建了一个数据报。在编程中我们发送的与接收数据的参数就是DatagramPacket对象 DatagramSocket列举部分 修饰符返回类型签名说明构造方法DatagramSocket()无参构造创建一个实例对象通常用于客户端构造方法DatagramSocket(int port)含参构造参数为端口号创建一个实例对象通常用于服务器端voidsend(DatagramPacket p)向socket中发送一个数据报voidreceive(DatagramPacket p)从socket中接收一个数据报接收不到就阻塞等待 DatagramPacket列举部分 修饰符返回类型签名说明构造方法DatagramPacket(byte[] buf, int length)构建一个用于接收数据长度为length的数据报对象构造方法DatagramPacket(byte[] buf, int length, InetAddress address, int port)构建一个将要发送的数据长度为length的数据报并指定发送目的IP与端口号byte[]getData()从数据缓冲区中读取数据intgetLength()返回发送或接收的数据长度 2.2 UDP编程代码 2.2.1 实现需求 作为我们的第一个UDP实验我们希望实现一个回显服务器的效果这相当于网络编程的Hello World需求如下 程序分为两部分服务器端和客户端客户端可以接收键盘输入内容封装报文向指定服务器发送数据报服务器端接收数据报后在显示器上打印格式为[/127.0.0.1, 52523]服务器接收到请求: xxx并回复给客户端OK客户端发送数据报后等待服务器响应内容然后将响应内容打印在显示器上要求服务器可以持续接收客户端请求客户端可以不停接收用户键盘输入 2.2.2 代码编写 UDP服务器端代码 /*** UDP服务器端代码*/ public class UdpServer {private int serverPort 0; // 服务器端端口private DatagramSocket socket null;public UdpServer(int port) throws SocketException {this.serverPort port;this.socket new DatagramSocket(port);}public void start() throws IOException {System.out.println(服务器开始启动....);// 1. 循环处理客户端请求while (true) {// 2. 阻塞等待客户端请求DatagramPacket request new DatagramPacket(new byte[4096], 4096);socket.receive(request);// 3. 获得请求后进行处理String responseMsg process(request);// 4. 将响应回传客户端DatagramPacket response new DatagramPacket(responseMsg.getBytes(), responseMsg.getBytes().length, request.getSocketAddress());socket.send(response);}}public String process(DatagramPacket request) {// 根据请求数据读取构造字符串String msg new String(request.getData(), 0, request.getLength());System.out.printf([%s, %d]服务器接收到请求: %s\n, request.getAddress(), request.getPort(), msg);// 服务器端返回OKreturn OK;}public static void main(String[] args) throws IOException {UdpServer udpServer new UdpServer(9090);udpServer.start();} }UDP客户端代码 /*** UDP客户端代码*/ public class UdpClient {private String serverIP;private int serverPort;private DatagramSocket socket;public UdpClient(String serverIP, int serverPort) throws SocketException {this.serverIP serverIP;this.serverPort serverPort;this.socket new DatagramSocket();}public void start() throws IOException {System.out.println(客户端启动....);Scanner scanner new Scanner(System.in);// 1. 用户持续输入System.out.print(-);while (scanner.hasNext()) {String input scanner.next();// 2. 将用户输入内容构造成数据报DatagramPacket request new DatagramPacket(input.getBytes(), input.getBytes().length, InetAddress.getByName(serverIP), serverPort);// 3. 向服务器端发送数据报socket.send(request);// 4. 阻塞等待服务器端响应DatagramPacket response new DatagramPacket(new byte[4096], 4096);socket.receive(response);// 5. 打印响应内容String responseMsg new String(response.getData(), 0, response.getLength());System.out.println(responseMsg);System.out.print(-);}}public static void main(String[] args) throws IOException {UdpClient udpClient new UdpClient(127.0.0.1, 9090);udpClient.start();} }运行效果 客户端 服务器端 2.2.3 流程分析 我们以客户端输入hello为例分析客户端和服务器端各自的执行流程 服务器端执行socket.receive(request);进入阻塞状态等待客户端的请求客户端执行while(scanner.hasNext()) {...}阻塞等待用户键盘输入客户端用户在键盘敲下hello客户端停止阻塞执行以下代码 String input scanner.next(); // 2. 将用户输入内容构造成数据报 DatagramPacket request new DatagramPacket(input.getBytes(), input.getBytes().length, InetAddress.getByName(serverIP), serverPort); // 3. 向服务器端发送数据报 socket.send(request); // 4. 阻塞等待服务器端响应 DatagramPacket response new DatagramPacket(new byte[4096], 4096); socket.receive(response);将用户输入内容构造成DatagramPacket对象然后执行socket.send(request)向服务器发送请求。然后执行socket.receive(response);进入阻塞状态等待服务器响应 服务器端停止阻塞开始执行以下代码 // 3. 获得请求后进行处理 String responseMsg process(request); // 4. 将响应回传客户端 DatagramPacket response new DatagramPacket(responseMsg.getBytes(), responseMsg.getBytes().length, request.getSocketAddress()); socket.send(response);服务器获得请求数据报后开始解析然后构建响应数据报返回给客户端即调用socket.send(response);向客户端发送数据报socket.send(response);之后再次执行while循环执行socket.receive(request);阻塞等待下一次的客户端请求 客户端接收到服务器端响应停止阻塞执行以下代码 // 5. 打印响应内容 String responseMsg new String(response.getData(), 0, response.getLength()); System.out.println(responseMsg); System.out.print(-);将响应内容显示在屏幕上后继续执行while(scanner.hasNext()) {...}进入阻塞等待下一次用户输入由此进入闭环。 总结无论是客户端还是服务器端都需要各自执行通过套接字发送请求、接收响应的过程即客户端调用一次send、一次receive方法服务器端调用一次send、一次receive方法。而且send方法中的参数一定是载有实际发送内容的字节数组而receive方法参数所需的DatagramPacket对象内部则为空的字节数据是需要被响应内容所填充的 输出型参数。 完整流程图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手学做网站用什么软件wordpress去除顶部

问题描述板卡有两个CPU,ARMMIPS,同时运行三个系统REE(linux) TEE(SierraTEE) SEE(TDS)。TEE跟SEE通过RPC进行通信,有enum成员的结构体信息传递会出错,如下结构体:struct sTag {enum A;enum B;int C;enum D;};问题分析…

网站设计与网站建设课程代码手机怎么制作钓鱼网站

1.Zabbix 1.1.监控概述 监控是指对行为、活动或其他变动中信息的一种持续性关注,通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制,事后追责目标:早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要…

无法定时发送

迎接成年 Ratio并不伟大的 Ratio_Y 将于 10.7 成人。天真的以为五年之后终于可以在家过一次生日了,然而理工实验只放 456 三天,反而是亨氏放到了 7 号( 因为没有博客园 vip,无法定时发送,所以现在就发了。 先祝我…

西安有做网站的吗搜索引擎优化的作用是什么

① 介绍一下CIP CIP是一种考虑到自动化行业而设计的通用协议。然而,由于其开放性,它可以并且已经应用于更多的领域。CIP网络库包含若干卷: 第1卷介绍了适用于所有网络自适应的CIP的常见方面。本卷包含通用对象库和设备配置文件库&#xff0…

计算能力的重要性:从内存配置到进程迁移的未来展望

本文探讨了低配置Windows电脑带来的用户体验问题,对比了苹果设备的内存配置策略,并深入分析了进程迁移技术如何让低配设备通过远程计算获得强大性能,展望了未来计算资源共享的美好愿景。计算能力的重要性 我妈妈有个…

MongoDB财报超预期,文档数据库技术解析

文档数据库公司MongoDB第二季度业绩表现强劲,其云托管服务Atlas收入增长29%,新增逾5000客户。该数据库支持多种数据格式,为AI应用提供数据支持,技术架构涵盖云端和本地部署方案。业绩亮点 文档数据库公司某机构在第…

深入解析:【RabbitMQ】- Channel和Delivery Tag机制

深入解析:【RabbitMQ】- Channel和Delivery Tag机制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

实用指南:vulkan游戏引擎renderer_frontend实现

实用指南:vulkan游戏引擎renderer_frontend实现2025-10-06 15:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

2020CSPS T1 儒略日题解

这是一道超级大模拟 前后调了差不多3个小时,要是考场上那就已经炸了 题意其实很简单,但是处理起来是真的麻烦 最后写了份特别丑的代码,A过去了 主要是特例判的恶心,总是会有1月0日的错误 这题一定要耐住性子做下来…

在线教育网站建设公司网站建设价格低

目录 ansible 环境安装部署 管理端安装 ansible ansible 目录结构 配置主机清单 配置密钥对验证 ansible 命令行模块 1.command 模块 2.shell 模块 3.cron 模块 4.user 模块 5.group 模块 6.co…

调用百度AI接口实现网络图片中的文字识别

之前也做过一些api调用的demo,一直是看API文档,向目标url发送请求,看看传哪些参数,接受哪些参数。 API平台:https://ai.baidu.com 这次使用HTTP-SDK文档。那么两者的区别是什么呢? API 文档告诉你服务的“功能”…

Golang|分布式搜索引擎中所使用到的设计模式 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python 语言编程技巧

Python 语言编程技巧__name__ == “__main__” 这个表达式可用于判断当前模块是最先运行的模块,还是被导入的模块。def main() -> None:...if __name__ == __main__:# 直接运行当前文件时执行。main()

kafka 常用知识点 - 指南

kafka 常用知识点 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

做神马网站快公司logo形象墙效果图

win --> cmd 右键以管理员运行 --> regedit 进入注册表 --> 找到你要删除的值的所属文件夹 --> 右键权限 -->修改为完全控制

汽车工厂网站建设wordpress布局模板

1 简单的表单校验 <!--uniapp:参考模板和字段生成页面 字段stuNumber 输入框 学号stuName 输入框 学生姓名teacher 输入框 辅导员submitDate 日期选择 填报日期morningTemperature 输入框&#xff08;数字校验一位小数&#xff09; 早上体温noonTemperature 输入框&…

长沙中小企业做网站写网站的教程

PHP CURL内存泄露的解决方法curl配置平淡无奇&#xff0c;长时间运行发现一个严重问题&#xff0c;内存泄露&#xff01;不论用单线程和多线程都无法避免&#xff01;是curl访问https站点的时候有bug&#xff01;内存泄露可以通过linux的top命令发现&#xff0c;使用php函数mem…

英语_阅读_ChatGPT_待读

What Do You Say at the Altar? Let ChatGPT Decide Molly Price and Erik Sorensen are getting married in October. 莫莉普赖斯和埃里克索伦森将在十月结婚。 AI is helping with the details. 人工智能正在帮助处…

在制作网站前 不需要急于做的工作是用html做的美食网站

CHS_01.2.1.12.1.3进程的概念、组成、特征 进程进程的概念 进程的组成——PCB进程的组成——PCB进程的组成——程序段、数据段知识滚雪球&#xff1a;程序是如何运行的&#xff1f;进程的组成进程的特征 知识回顾与重要考点 从这个小节开始 我们会正式进入第二章处理机管理相关…