iis网站架设教程做网站和开发app有什么不同

web/2025/9/27 3:08:31/文章来源:
iis网站架设教程,做网站和开发app有什么不同,口碑营销的优势,学校网站建设招标一.网络编程的基本术语. 客户端 客户端是为用户提供本地服务的程序#xff0c;通常位于用户设备上。也称为用户端#xff0c;是相对于服务器而言的。它主要指安装在用户设备上的程序#xff0c;这些程序能够与服务器进行通信#xff0c;从而获取服务或者执行特定功能。在…一.网络编程的基本术语. 客户端 客户端是为用户提供本地服务的程序通常位于用户设备上。也称为用户端是相对于服务器而言的。它主要指安装在用户设备上的程序这些程序能够与服务器进行通信从而获取服务或者执行特定功能。在互联网应用中常见的客户端包括网页浏览器、电子邮件客户端和即时通讯软件等。它们需要与远端的服务器建立连接以便接收如数据库服务、邮件服务等网络服务。 服务器 服务器则是为其他程序或设备提供功能的计算机或软件。一种专门设计用来处理数据请求并提供服务的计算设备。它具备高速的CPU、大容量的存储空间以及强大的I/O吞吐能力能够长时间稳定运行。服务器的主要作用是在网络中为客户机如个人电脑、智能手机等提供诸如网站访问、文件存储、数据处理等各种计算和应用服务。 网络编程 网络编程 : 指网络上的主机通过不同的进程以编程的方式实现网络通信或称为网络数据传输。 套接字Socket 套接字常称为socket是计算机网络中用于实现不同主机之间的进程双向通信的端点。在网络编程中套接字充当了非常重要的角色它定义了一套标准的API允许程序员在不同的计算机之间发送和接收数据.是网络编程中实现不同主机间进程通信的一种技术规范和编程接口。 流套字节 使用传输层TCP协议 , 对于字节流来说可以简单的理解为传输数据是基于IO流流式数据的特征就是在IO流没有关闭的情况下是无边界的数据可以多次发送也可以分开多次接收。 数据报套接字 使用传输层UDP协议 , 对于数据报来说可以简单的理解为传输数据是⼀块⼀块的发送⼀块数据假如100个字节必须⼀次发送接收也必须⼀次接收100个字节而不能分100次每次接收1个字节。 原始套字节 原始套接字用于自定义传输层协议用于读写内核没有处理的IP协议数据。 TCP和UDP的特点 TCP特点: 有连接 : 连接的双方都需要认同(本质上就是通信双方都保存有通信双方各自的信息)可靠传输 : 主要是指发送方放的信息是否被收到 , 发送方能够清楚的感知到.面向字节流 : 传输的基本单位是以字节为基本单位全双工 : 一个信道,可以双向通信. 只能单向通信就称为’‘半双工’’ UDP的特点: 1.无连接. 2. 不可靠传输. 3.面向字节报 4.全双工. 二.常用API DatagramSocket 构造方法: 常用方法: DatagramPacket 构造方法: 基本方法: 三.基于UDP回显服务器. 客户端代码 package Demo1;import java.io.IOException; import java.net.*; import java.nio.charset.StandardCharsets; import java.util.Scanner;public class udpEchoClint {private DatagramSocket datagramSocket null;private String serverIP;private int serverPort;//客户端要给服务器发送请求的前提就是知道服务器的地址public udpEchoClint(String serverIP,int serverPort) throws SocketException {datagramSocket new DatagramSocket();this.serverIP serverIP;this.serverPort serverPort;}public void start() throws IOException {System.out.println(客户端启动~~);Scanner scanner new Scanner(System.in);while(true){System.out.print(-);if(!scanner.hasNext()){break;}//1.从控制台读取要发送的请求数据.String request scanner.next();//2.构造一个请求并发送.DatagramPacket requestPacket new DatagramPacket(request.getBytes(StandardCharsets.UTF_8),request.getBytes().length,InetAddress.getByName(serverIP),serverPort);datagramSocket.send(requestPacket);//3.读取服务器的响应.DatagramPacket responsePacket new DatagramPacket(new byte[4096],4096);datagramSocket.receive(responsePacket);//4.把响应显示到控制台上String response new String(responsePacket.getData(),0,responsePacket.getLength());System.out.println(response);}}public static void main(String[] args) throws IOException {udpEchoClint clint new udpEchoClint(127.0.0.1,9090);clint.start();} } 服务器代码 package Demo1;import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import java.nio.charset.StandardCharsets;public class udpEchoServer {private DatagramSocket datagramSocket null;public udpEchoServer(int port) throws SocketException {datagramSocket new DatagramSocket(port);}//服务器的启动逻辑.public void start() throws IOException {System.out.println(服务器启动!!);//对于服务器来说,需要不停的收到请求,返回响应while(true){//每次循环就是处理一个请求返回响应的过程//1.读取请求并解析DatagramPacket requestPacket new DatagramPacket(new byte[4096],4096);//这个字节数组,保存收到的消息正文(应用层数据包),也就是应用层数据报的载荷部分datagramSocket.receive(requestPacket);//将消息正文转化为字符串.String request new String(requestPacket.getData(),0,requestPacket.getLength());//2.根据请求计算响应(对于回显服务器来说,这一步啥也不用干)String response process(request);//3.把响应返回给客户端//构造一个响应对象.DatagramPacket responsePacket new DatagramPacket(response.getBytes(StandardCharsets.UTF_8),response.getBytes().length,requestPacket.getSocketAddress() //得到一个INetAddress对象吗,里面存储了客户端的IP和端口号.// 会把客户端的源IP和端口号,作为目的IP和目的端口号.);datagramSocket.send(responsePacket);//打印日志:System.out.printf([%s,%d],request: %s, response: %s,responsePacket.getAddress().toString(),responsePacket.getPort(),request,response);}}public String process(String request){//回显服务器,返回要求.return request;}public static void main(String[] args) throws IOException {udpEchoServer server new udpEchoServer(9090);//1024端口号范围65535server.start();} } 运行结果: 具体的执行流程: 服务器启动启动之后,立即进入while循环,执行到receive,进入阻塞,此时客户端还没有发来请求~~客户端启动启动之后,立即进入while虚幻,执行到hasNext这里~~进入阻塞,此时用户没有在控制台输入任何内容.用户在客户端的控制台中输入字符串,按下回车.此时hasNext阻塞解除,next会返回刚才输入的内容. 基于用户输入的内容,构造出一个DatagramPacket对象,并进行send~~ send执行完毕之后,继续执行到receive操作,等待服务器返回的响应数据(此时服务器还没有返回响应,这里也会阻塞).服务器收到请求之后,就会从receive的阻塞中返回. 返回之后,就会根据读到的DatagramPacket对象,构造String request,通过process方法构造一个String response 再根据response构造一个DatagramPacket表示响应对象,再通过send来进行发送给客户端 执行这个过程中,客户端也始终在阻塞等待!!客户端从receive中返回执行,就能够得到服务器返回的相应.并且打印在控制台上. 于此同时,服务器进入下一次循环,也要进入到第二次的receive阻塞,等待下个请求~~

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

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

相关文章

新浦网站制作做赚钱的网站有哪些

戳蓝字“CSDN云计算”关注我们哦! 作者:侯振宇转自:五分钟学算法01 目的 持续做算法题的目的仍然是自身能力提升。可以继续细化成三点:保持思维敏捷。非常重要,状态好才能保持对编程的热情。对基础的数据结构、查找和排序保持熟练…

用html做网站步骤安阳网站优化公司推荐

一、什么是 ThreadLocal ThreadLocal 提供了线程的局部变量,每个线程都可以通过 set() 和 get() 来对这个局部变量进行操作,但不会和其他线程的局部变量冲突,实现了线程间的据隔离。 简单讲:一个获取用户的请求线程 A,…

网站设计 收费网站图片素材下载

RabbitMQ RabbitMQ是一个开源的消息队列中间件,它实现了高效、可靠的消息传递机制。它支持多种消息传递模式,如发布/订阅、点对点、请求/回应等。RabbitMQ以其可靠性、灵活性和易用性受到广泛的关注和应用。 RabbitMQ基于AMQP(Advanced Mess…

织梦网站被挂马怎么处理申请免费个人网站

转载http://hi.baidu.com/ddumy/blog/item/d96b361901776e7ddab4bdd6.html固定资产减值准备与累计折旧会计核算的关系【摘 要】 固定资产减值准备与累计折旧是固定资产核算的重要组成部分,又都是“固定资产”的备抵项目,它们共同反映着固定资产的现时价值…

可以直接进入网站的代码网站前台用什么做

云计算参考架构: 上图阐释如何创建私有和混合云,最终用户可以自行提供计算、 存储和网络。许多大型组织开始创建内部的私有云,来增强其数据中心战略。 58同城的云架构: 百度社区的云架构 结合对弹性服务的理解,第一个是弹性伸缩,你…

制作网站语言wordpress汉化手机版

学习目标: 联邦学习目前面临的挑战以及解决方案 学习内容: 联邦学习是一种新兴的人工智能基础技术,它在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的…

网站打不开怎么解决网站域名注册信息

Tomcat调优原理: 1、增加最大连接数(增大值避免队列请求过多,导致响应缓慢) 2、调整工作模式 Bio(BlockingI/O):默认工作模式,阻塞式I/O操作,没有任何优化技术处理,性能比较低。Nio(…

曲靖模板网站建设企业官网流程

光模块(optical module)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。光模块主要应用在光通信、数据中心等地方的。那么,光模块到底是什么呢?光模块有什么用呢?接下来我们就跟随飞畅科技的小编一起来详…

网站页面怎么优化定制网站建设多少钱

一、摘要(本系列汇总说明) - 总纲 FTP、SFTP上传下传、进度监控、断点续传、连接池封装JAVA一网打尽(一) FTP、SFTP上传下传、进度监控、断点续传、连接池封装JAVA一网打尽(二) FTP、SFTP上传下传、进度监…

惠安网站建设费用wordpress 多语言网站

字典表 前端页面显示 依据这个字典表实现动态查询 初始化数组 首先先在全局变量里定义一个数据存放查询出来的数据 data() {return {dicts: []};},生命周期 查询的时候是声明周期开始的时候,原本增删改查页面在生命周期开始的时候就查询了页面的数据获得了列表值…

营销型网站的要素广告设计与制作教程

乔布斯有一句话,叫做我们是站在人文与技术的十字路口上,很多人把这句话的理解为苹果除了追求技术性能,还追求艺术美感,但如果你看看他 2001 年接受 NHK 的采访,你会明白乔布斯说的不是这个意思,他的意思应该…

成都微信网站制作wordpress 源码 分析

im2bw函数是MATLAB用于图像二值化的函数&#xff0c;调用形式为&#xff1a; J im2bw(I,level) 其中阈值level是一个0-1的值&#xff0c;如果输入的图像像素值范围0-255&#xff0c;设置阈值level160&#xff0c;则该函数会将图像中像素值<160的点置为0&#xff0c;像素值…

怎么在网站后台挂马国际网站 建设

人工智能量子计算&#xff0c;这是一种可能改变世界的伙伴关系。 在科技的前沿&#xff0c;两大革命性技术——人工智能&#xff08;AI&#xff09;和量子计算——正站在合作的十字路口。人工智能&#xff0c;以其强大的数据分析能力和模式识别&#xff0c;正在改变着我们生活…

seo怎么优化网站排名购买网站外链

一.OpenCV安装环境配置 1.OpenCV安装 &#xff08;1&#xff09;下载 官方下载链接&#xff1a;http://opencv.org/releases 这边选择需要的版本&#xff0c;我是在windows下的4.9.0。&#xff08;科学上网下载很快&#xff0c;否则可能会有点慢&#xff09; (2)安装 双击下…

视频下载网站软件做副屏个人如何注册小程序

您可以通过以下解决方案之一来实现此目的&#xff1a;使用构造函数Autowired这种方法将构造需要一些bean作为构造函数参数的bean。在构造函数代码中&#xff0c;设置静态字段的值为参数为构造函数执行。样品&#xff1a;Componentpublic class Boo {private static Foo foo;Aut…

西安建设局网站地址曲靖做网站需要多少钱

具体思路 先设置画布的宽高&#xff0c;再将每个图片整理成一个对象的数组通过某个方法传出合成后的base64 &#xff08;1&#xff09;、创建一个画布的类&#xff0c;他的属性是canvas虚拟dom和ctx &#xff08;2&#xff09;、构造器初始化convas对象、ctx、convas的宽高 …

建站之星收费版国内全屏网站有哪些

前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类,分别是&#xff1a;CountDownLatchCyclicBarrierSemaphoreExchangerCountD…

设计软件网站推荐一般网站空间多大

本文将介绍Python安装的详细步骤如下&#xff1a; 下载 python安装 python配置环境变量&#xff08;安装时勾选配置环境变量的则无需此步骤&#xff09; 一、python下载 官网&#xff1a;Download Python | Python.org 根据电脑位数下载所需的版本 二、Python安装 1.打开安…

个人空间网站做面包有哪些网站知乎

Hive SQL-DML-Load加载数据 在 Hive 中&#xff0c;可以使用 SQL DML&#xff08;Data Manipulation Language&#xff09;语句中的 LOAD 命令来加载数据到表中。LOAD 命令用于将本地文件系统或 HDFS&#xff08;Hadoop 分布式文件系统&#xff09;中的数据加载到 Hive 表中。 …

虚拟主机和网站空间公司平台网站建设

应用场景&#xff1a;一个游戏可能会衍生出其他APP或小程序之类的软件&#xff0c;例如王者营地是王者荣耀的官方APP&#xff0c;王者营地提供资讯、赛事、社区、战绩等功能。所以游戏端会和衍生出来的软件端做一些数据互通。这里把软件端称为中台系统。 Get请求和Post请求的区…