网络编程学习(1)

计算机网络实现不同计算机之间的通信,必须依靠编写网络程序来实现

作用: 资源共享、信息传递

组成:

  1. 计算机硬件:计算机、外部设备、通信线路

  2. 计算机软件:网络操作系统(linux\windows…)、网络管理软件、网络通信协议

计算机之间要可以实现连接和通信,计算机网络就要遵循一定的通信协议,于是就出现了OSI参考模型,之后似乎TCP\IP网络通信协议

TCP\IP有四层

TCP/IP数据封装
应用层传输数据给传输层
传输层给数据添加TCP头部(segment)
网络层加上IP头部 段(segent)–> 包(Pocket)
数据链路+物理数据链路层打上MAC头部和尾部,(Frame),交给物理层,将数据转化为比特流
TCP/IP数据解封装
数据链路+物理物理层处理二进制比特流,交给数据链路层,链路层将数据转化为Frame,去除MAC头部和尾部,转化为Pocket
网络层去除IP头部,变成Segment
传输层去除TCP头部,将数据交给应用层
应用层得到数据

IP

定位

IP定位计算机,Port定位软件,URL定位网络上和软件上的每一份资源。

域名和IP之间有DNS(域名解析), 实现数字的IP地址和有意义的字符串进行转换

端口

端口用来区分计算机上的不同程序,16位二进制,2个字节,同一个协议端口不能冲突(tcp udp)

  • 查看所有端口:netstat -ano
  • 查看指定端口:netstat -ano | findstr “808”
  • 查看指定进程:tasklist | findstr “808”
  • 任务管理器查看PID

InetSocketAddress: 该类实现IP+端口号,包含IP和端口信息,常用于socket通信

URL

统一资源定位符

在www上,每个信息资源都有统一且唯一的地址,即统一资源定位符Uniform Resource Locator.

如http://www.google.com:80/index.html

由四部分组成:

  • 协议

  • 存放资源额主机域名

  • 端口号

  • 资源文件名

    HTTP有默认端口80

互联网三大基石:HTML HTTP URL

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name 为例

(https://www.baidu.com/s?ie=UTF-8&wd=URL参数)

上面 URL 包括以下几部分:

  1. 协议部分:该 URL 的协议为"http:"。在 internet 中可以有多种协议,比如:HTTP HTTPS FTP等。

  2. 域名部分:该 URL 的域名部分为"www.aspxfans.com"。一个 URL 中,也可以使用IP地址作为域名(域名和IP地址是可以相互转换的)。

  3. 端口部分:跟在域名后面的是端口,域名和端口之间使用":"分割开。端口不是 URL 必须的部分,如果省略端口,则将采用默认端口。http 协议的默认端口是 80,https 协议的默认端口是 443。

  4. 从域名(或域名+端口)后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”。

  5. 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。

  6. 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

  7. 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

  • 在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。这些特殊符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如空格的编码值是"%20"。下表中列出了一些URL特殊符号及编码。

链接:https://www.jianshu.com/p/6562e0b0e016

爬虫原理
  • 获取URL
  • 下载资源
  • 分析
  • 。。。

协议(TCP,UDP)

  • TCP(transfer control protocol):一种面向连接(连接导向)的、可靠地、基于字节流的运输层通信协议。

    特定:面向连接、点到点、高可靠性、占用系统资源多效率队

    (打电话)

  • UDP(User Datagram Protocol ): 一种无连接的传输层协议,面向事务的简单不可靠信息传送服务

    (寄包裹)

    特定:非面向连接,传输不可靠,可能丢失,发送不管对方是否准备好,接收方也不确认,可以广播发送、非常简单的协议,开销小

**套接字socket **

应用层如何使用传输层服务?应用层和传输层之间使用套接字来进行分离

UDP编程

大小不要超过60k,数据不能太大,太大分段

会存在丢包

分析:

  • 使用基于UDP协议的Socket网络编程实现
  • 不需要理由IO流实现数据的传输(使用字节流)
  • 每个数据发送单元被统一封装成数据包的方式,发送方将数据包发送到网络中,数据包在网络中寻找他的目的地
DatagramSocket用于发送或接收数据包的套接字
DatagramPacket数据包,实现无连接分组传输服务。仅基于该数据包中包含的信息,每个消息从从一台机器路由到另一台,中间的多个分组可能可能有不同的路由,到达顺序不一样

(socket可接受和发送数据包)

模拟传输

接受方:

  1. 使用DatagramSocket 指定端口,创建接收端

  2. 准备容器 封装成DatagramPackets包裹

  3. 阻塞式接受包裹receive(DatagramPacket p)

  4. 分析数据

    byte[] getData()

    int getLength()

  5. 释放资源

发送端

  1. 使用DatagramSocket 指定端口,创建发送端
  2. 准备数据,转化成字节数组
  3. 封装成DatagramPacket,需指定目的地
  4. 发送包裹send(DatagramPacket p)
  5. 释放资源

端口自己的理解:计算机之间要进行通信,互相发送信息,计算机提供各种不同的服务,需要各种不同的数据,IP定位计算机位置,端口定位计算机的服务。对于发送也是如此,不同的端口定义不同的服务。一个公司(ip),有不同的部门(端口)

同一个协议下端口不能冲突

发送端要有发送端口,包的信息有目的地的IP和接受端口

接收端指定接受端口,与发送端包中的接收端口一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值