当前位置: 首页 > news >正文

网络编程概述和三要素(IP/端口号/协议)以及Socket通信原理

一、网络编程概述

1、计算机网络

  • 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

2、网络编程

  • 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

二、网络编程三要素之IP概述

  • IP:每个设备在网络中的唯一标识。每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。
  • cmd命令:
    • ipconfig:查看本机IP192.168.12.42
    • ping:测试连接192.168.40.62
  • 本地回路地址:127.0.0.1
  • 广播地址:255.255.255.255
  • IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。
  • IPv6:8组,每组4个16进制数。
    • IPv6:8组,每组4个16进制数。
    • 1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f
    • 1a2b::aaaa:0000:0000:0000:aabb:1f2f
    • 1a2b:0000:aaaa::aabb:1f2f
    • 1a2b:0000:aaaa::0000:aabb:1f2f
    • 1a2b:0000:aaaa:0000::aabb:1f2f

三、网络编程三要素之端口号概述

  • 端口号:每个程序在设备上的唯一标识
  • 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
  • 端口号范围从0-65535
  • 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
  • 常用端口
    • mysql: 3306
    • oracle: 1521
    • web: 80
    • tomcat: 8080
    • QQ: 4000
    • feiQ: 2425

当两个设备同时登陆了3个不同的聊天工具时,这台电脑QQ发送的消息能准确发送到另一台电脑的QQ是因为同一个应用程序有相同的端口号。
这里写图片描述

四、网络编程三要素之协议概述

  • 协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
    • UDP:面向无连接,数据不安全,速度快。不区分客户端与服务端。
    • TCP: 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。
    • 三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据

五、Socket通信原理图解

Socket套接字概述:

  • 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
  • 通信的两端都有Socket。
  • 网络通信其实就是Socket间的通信。
  • 数据在两个Socket间通过IO流传输。
  • Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。

这里写图片描述

 

转载于:https://www.cnblogs.com/soarsir/p/7652171.html

相关文章:

  • 张春晖让视频的每词每句都可搜索:Autotiming 可以自动配字幕,还将改变哪些领域?...
  • 寄存器调试 (1):应用层基于shell命令访问
  • 谱聚类实例
  • postgresql update returning
  • 其实吧,360的开发,素质也没高到哪去,看代码就看出来了
  • 判断js数据类型
  • Linux上给不是管理员的用户增加安装软件的权限
  • 【已解决】项目加载失败,Web应用程序项目XX已配置为使用IIS
  • JDBC连接数据库:单线程、多线程、批处理插入数据的对比
  • VS2015 +EF6 连接MYSQL数据库生成实体
  • CF 840 D
  • 初识oracle存储过程
  • 大数据竞赛平台Kaggle案例实战
  • 我的Hibernate学习记录(一)
  • Java 读写Properties配置文件
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 2017年终总结、随想
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • vue总结
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 老板让我十分钟上手nx-admin
  • 前端之Sass/Scss实战笔记
  • 推荐一个React的管理后台框架
  • 我建了一个叫Hello World的项目
  • - 转 Ext2.0 form使用实例
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • PostgreSQL之连接数修改
  • ​【已解决】npm install​卡主不动的情况
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (4)(4.6) Triducer
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (LeetCode 49)Anagrams
  • (poj1.3.2)1791(构造法模拟)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (蓝桥杯每日一题)love
  • (五)IO流之ByteArrayInput/OutputStream
  • (一) springboot详细介绍
  • (转)h264中avc和flv数据的解析
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Micro Framework 4.2 beta 源码探析
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net6使用WebSocket与前端进行通信
  • .Net程序帮助文档制作
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net网站发布-允许更新此预编译站点
  • .Net中ListT 泛型转成DataTable、DataSet
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现