关于局域网、广域网、C/S、P2P编程

2023-11-14

一直以为局域网和广域网的编程没什么不同(实际上确实没什么不同),但这里我要说的是C/S和P2P。
先说说为局域网编程,局域网编程不用考虑网关,不用考虑NAT,不用考虑消息发送成功后对方将消息丢弃等,这样编程相当简单,只要建立相应的套接口,设置端口就ok。
一台局域网主机和一台公网主机的通信也很简单,只要局域网主机先发起通话,接下来的工作就和前面一样了。
两台公网上的主机的通信和局域网的通信编程是一样的。
最有难度的就是两台位于不同局域网内的主机通信,因为任意一方向对方发起的通信都会被对方的NAT丢弃,总结了一下,有三种方法可以解决这个问题:
1)端口映射,将局域网的主机映射到其网关上,使其直接和公网连接。
2)通过C/S模式,用服务器作为中转站的间接通信。
3)P2P通信,即通过中间服务器向对方发送和NAT打洞请求的方式,打洞成功后即可不依赖于中间服务器而进行P2P通信了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于局域网、广域网、C/S、P2P编程 的相关文章

  • 华为交换机配置SSH远程登陆

    拓扑图 1 配置IP
  • 互联网摸鱼日报(2023-03-03)

    互联网摸鱼日报 2023 03 03 InfoQ 热门话题 在 Istio 中使用 Kata 容器注入工作负载 数字中国顶层设计来了 一图读懂 2522 框架 政策解读 探索 Android 14 首个开发者预览版的新功能与特性 深入银行数
  • T0、T1、TS、D1是什么鬼?一文看懂POS机刷卡到账模式区别和利弊

    经常被一些刚刚接触POS机的朋友问到一个 什么是T0 什么是T1 今天小敏子就和大家来探讨一下几种刷卡到账模式区别和利弊 一 先说一下定义 什么是T T为英文Trade交易的首字母 什么是D D为英文Day 天 的首字母 什么是S S为英文
  • Vue让router-view默认显示任意页面

    场景 一个home页面 点击左边的菜单栏 右边显示页面 因此都知道在右边放一个router view然后配置路由即可 然而问题出现在 重新打开的时候 默认是白色空的 那么解决办法是 在router管理的index js中 加上 redire
  • PHP源码1001PHP源码,某区块链养殖系统平台PHP源码无加密完整版,带充值接口+完整会员系统 可封装APP可二开...

    站长评测 对接的应该是码支付 源码没啥问题 有些功能还没开发完 适合二开 需要的朋友看看 1 只需用330元注册狗狗集市的一个游戏账户 就可以加入我们的大家庭了并可以获得戏猪的称号 第二天才会有收益 2 空闲之余呢您还可以去好友猪子圈里偷猪
  • 线性布局和相对布局的一些属性

    线性布局 LinearLayout orientation 属性是指定线性布局的排列方向 horizontal 水平 vertical 垂直 gravity属性是指定当前控件内容显示位置 left 左边 right 右边 top 上边 bo
  • SoundTouch实现音频变速变调

    音频基础 声音属性 响度 Loudness 音量 与声波的振幅有关 音调 Pitch 音调与声音的频率有关 声音频率越大时 音调就越高 否则就越低 音色 Quality 由物体结构特性所决定 A D转换 Analog to Digital
  • asp.net zero 8.2 学习-9-多租户设置,发送邮件配置

    学习在asp net zero系统中如何切换多租户及没有租户的设置 配置多租户 为实体添加TenantID 数据库迁移 修改DemoObjectAppService服务类的实体创建方法 配置邮件发送 创建租户 并添加数据测试 切换为无租户系
  • LeetCode 1034:边界着色

    问题描述 给你一个大小为 m x n 的整数矩阵 grid 表示一个网格 另给你三个整数 row col 和 color 网格中的每个值表示该位置处的网格块的颜色 将给定单元格 row col 的联通区域的边界着色成color 思路 DFS
  • 基于springboot+vue的学科竞赛项目管理系统【附源码】

    晚安独角兽 hello你好我是独角兽 很高兴你能来阅读 昵称是希望自己能不断精进 向着优秀程序员前行 博客来源于项目以及编程中遇到的问题总结 偶尔会有读书分享 我会陆续更新Java前端 后台 数据库 项目案例等相关知识点总结 感谢你的阅读和
  • web安全--文件包含实例操作

    文件包含分为LFI 本地文件包含 和RFL 远程文件包含 两种 文件包含的前提是服务器allow url openllow url include LFI 或者allow url open RFI 在owasp环境中可以在 etc php5
  • 软件测试——自动化测试框架有哪些?

    目录 前言 一 Robot Framework 二 Pytest 三 UnitTest PyUnit 四 Behave 五 Lettuce 结语 前言 自动化测试常用的Python框架有哪些 常用的框架有Robot Framework Py
  • 命令行进入指定目录_命令行的简单介绍

    作为一名程序员 命令行是最基础的东西 不要以为作为前端就可以不用学习命令行了 前端首先是程序员然后再是前端 所以命令行是必须要懂的 接下来我们简单的来介绍几个最常用的命令吧 在介绍命令前 请先安装好Git bash等命令行工具 1 基础单词
  • QT5.15以及QT VS TOOL安装教程(精简版)

    前言 大作业需要做一个图形化的计算器 不给用Java 又只学过C 所以投奔QT的怀抱 网上有些教程已经没法用了 还不更新 这是我刚摸出来的方法 2023 Apr 实测可用捏 欢迎补充指正 QT5 15下载安装教程 点击这个链接 Index
  • IOC/DI/AOP回顾

    IOC BeanFactory ClassPathXmlApplicationContext AbstractApplicationContext 通过调 refrech 方法 去实现ioc容器的初始化 然后执行三个步骤 1 定位 主要执行
  • shell 脚本中总是会忘记的一些语法总结!!!!

    一 cmd gt file 2 gt 1 与 cmd 2 gt 1 gt file 区别 1 cmd gt file 2 gt 1 的意思是标准输出和标准错误输出都定向到 file 等价于 cmd gt file 或 cmd gt file
  • 【ML特征工程】第 6 章 :降维:用 PCA 压缩数据薄饼

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 请确保您已登录客户机操作系统。在客户机中装载虚拟CD驱动器,启动终端,使用tar解压...

    参考文档 官网指导文档 linux公社参考文档 转载于 https www cnblogs com bigorang p 10839217 html
  • QT创建计算器 [数据库实验课]

    QT创建计算器 数据库实验课 前言 qt我没有系统的学习过 所以对很多细节都很不清楚 今天写这个计算器 遇到了好多问题 问题 上课的时候老师做c 示例的时候 老师是在每一个0 9的按钮里 都双击添加函数的 然后我就想到当时写Java计算器的
  • 第二章:预备知识整理 ——2.1数据操作

    数据操作的课后练习题 2 1 8 练习 运行本节中的代码 将本节中的条件语句 X Y 更改为 X lt Y 或 X gt Y 然后看看你可以得到什么样的张量 用其他形状 例如三维张量 替换广播机制中按元素操作的两个张量 结果是否与预期相同

随机推荐

  • 解决eclipse maven 项目重新下载包这个问题

    本文转载至 http www cnblogs com huzi007 p 5602063 html 问题 eclipse项目使用maven下载依赖包 但是有时候断网什么来着就不会自动下载了 挺蛋疼了 所以 需要我们重新更新项目下载呢 首先是
  • Android PowerSupply (四)ChargeIC SGM41511 IC driver调试

    目录 Android PowerSupply 一 总概 Android PowerSupply 二 power supply core Android PowerSupply 三 power supply sys Android Power
  • IDEA 自动生成 serialVersionUID 的设置

    1 没有设置之前 选中对应的类名 然后按 alt enter 快捷键 的情况如下所示 2 设置自动生成 serialVersionUID 的方式如下图所示 关键点已逐个标识 3 设置之后 选中对应的类名 然后按 alt enter 快捷键
  • 分布式版本控制工具--Git

    分布式版本控制 Git的灵魂使用 版本控制简介 集中式版本控制 分布式版本控制 Git安装 Git的常用命令 Git配置项 新建仓库 增加 删除文件 提交文件 Git分支 Git的标签 查看信息 远程同步 撤销 版本控制简介 集中式版本控制
  • Vector容器的底层实现

    Vector容器的底层实现 Vector 类成员 构造函数 拷贝构造函数和析构函数 迭代器 函数功能 完整代码 总结 Vector Vector同样是STL六大组件之一 简单来讲他就是一个封装了动态大小数组的顺序容器 同时他可以存入各种各样
  • vue elementUI实现双(多)列表格,内容均自定义

    需求类似这样的 使用普通table实现 样式需要自己设置 table class person info border 1 cellspacing 0 tbody tr th 档案编号 th td personInfo name td th
  • 巴比特

    摘要 之前 由于没法开放注册 中国大模型厂商其实一直束手束脚 而8月31日 北京 上海率先通过了大模型备案 这意味着 跑得快 的企业可以大胆向市场推出产品了 从靠PPT来嘴花花 到放开手脚大干一场 大模型厂商们走向了真正的战场 争用户 抢市
  • LeetCode (二)找出数组中多于半数的数字

    题目 给定一个大小为 n 的数组 找到其中的多数元素 多数元素是指在数组中出现次数 大于 n 2 的元素 解法 自己的解法 思路 for循环遍历存Map 记录key对应的Count 如果大于半数 返回 package com jzj stu
  • React v16.3新生命周期、性能优化及注意事项

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 React Version 16 3版本对组件的生命周期函数进行了一些修改 在每个react组件中都有以下几个生命周期方法 我们应该掌握最新生命周期 学以致用 以达
  • mciSendString函数简介(播放音乐以及录音相关操作)

    函数功能 播放多媒体音乐 视频等 mciSendString是用来播放多媒体文件的API指令 可以播放MPEG AVI WAV MP3 等等 这个函数有自己的mci指令 可以通过不同的指令实现不同的功能 这里我会详细讲解mciSendStr
  • qemu 启动自定义文件系统命令

    kvm qemu aarch64 bin qemu system aarch64 M virt smp 8 cpu cortex a76 m 4G nographic kernel out kernel arm64 Image append
  • 对以太网粗略理解

    1 以太网定义 以太网 Ethernet 指的是由 Xerox公司创建并由Xerox Intel和 DEC公司联合开发的基带局域网规范 通用的以太网标准于1980年9月30日出台 是当今现有局域网采用的最通用的通信协议标准 是局域网的一种
  • html+css+javascript学习总结

    html用来写页面的结构和内容 css写样式和呈现效果 javascript写行为和动作 1 html常用标签 a 超链接 div 盒子 常用来控制样式的 ul ol 无序列表和有序列表 img 图片标签 button 按钮 form 表单
  • 看懂影片标题,各种电影视频格式标题的含义

    一 资源片源解析 根据命名 可以知道资源的来源 从而判断资源画质的好坏 1 CAM 枪版 珍爱生命 远离枪版 CAM通常是用数码摄像机从电影院盗录 有时会使用小三角架 但大多数时候不可能使用 所以摄像机会抖动 因此我们看到画面通常偏暗 人物
  • 【免费】win7 所有.net framework框架集合,免费下载,若要运行此应用程序,您必须首先安装net framework如何解决

    运行软件缺失框架 若要运行此应用程序 您必须首先安装net framework如何解决 那天我看见网上下载一个框架都要收费还要100大洋 现在真的是干啥都要钱 索性就整理了一个全库供大家下载 做点好事 net 框架所有的 net官网下载地址
  • 摄像机标定到底是在干什么?

    2017年11月13日学习记录 机器视觉 1 摄像机标定概括 刚开始学机器视觉 我研究的方向主要是双目视觉测距 做机器视觉的肯定对摄像机标定并不陌生 我入坑一个月 开始就是看看书 论文 了解了大概流程和研究主要方法 无特别明确目的和压力 然
  • 关于Redis的Zset使用方法

    序言 Zset跟Set之间可以有并集运算 因为他们存储的数据字符串集合 不能有一样的成员出现在一个zset中 但是为什么有了set还要有zset呢 zset叫做有序集合 而set是无序的 zset怎么做到有序的呢 就是zset的每一个成员都
  • Java基础:简单的Runnable 接口创建线程

    创建一个线程 Java 提供了三种创建线程的方法 通过实现 Runnable 接口 通过继承 Thread 类本身 通过 Callable 和 Future 创建线程 为了实现 Runnable 一个类只需要执行一个方法调用 run 声明如
  • 数字图像处理-离散傅里叶变换(opencv3+C++显示)

    参考 http daily zhihu com story 3935067 http blog csdn net keith bb article details 53389819 在学习信号与系统或通信原理等课程里面可能对傅里叶变换有了一
  • 关于局域网、广域网、C/S、P2P编程

    一直以为局域网和广域网的编程没什么不同 实际上确实没什么不同 但这里我要说的是C S和P2P 先说说为局域网编程 局域网编程不用考虑网关 不用考虑NAT 不用考虑消息发送成功后对方将消息丢弃等 这样编程相当简单 只要建立相应的套接口 设置端