社区
C#
帖子详情
局域网内的PC如何实现互联网间SOCKET通信
WWWFIND
2009-12-21 03:16:35
不同局域网内的两台PC,分别通过路由器防火墙连接到INTERNET,如何实现这两台PC间的TCP或者UDP通信?
而不必手动设置路由器和防火墙。
...全文
1029
12
打赏
收藏
局域网内的PC如何实现互联网间SOCKET通信
不同局域网内的两台PC,分别通过路由器防火墙连接到INTERNET,如何实现这两台PC间的TCP或者UDP通信? 而不必手动设置路由器和防火墙。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
only_lonely
2009-12-21
打赏
举报
回复
[Quote=引用 2 楼 lindenrty 的回复:]
如果就这2台机器 不设路由器似乎没可能
我只看到过这样的例子 2台机器由第三台公网IP的机器中转实现互联
不过这样还不如改网关方便
[/Quote]
直接通讯,得动路由,使用端口映射
不动路由,得有个公网的IP
ck11926375
2009-12-21
打赏
举报
回复
nat穿透,没做过。网上应该有
wxxloveu
2009-12-21
打赏
举报
回复
这个用P2P打洞啊,去我空间看我的贴吧
wangxiao2008
2009-12-21
打赏
举报
回复
up
lindenrty
2009-12-21
打赏
举报
回复
转贴
原帖地址:http://www.vjsdn.com/bbs/bbstopicdetails.aspx?html=0&pid=109221225
A->B打洞过程:
说明:
A:用户A
B:用户B
NA:NAT网络A
NB:NAT网络B
Server C为外网的机器(服务器或消息中转站)
A想与B建立通信通道,A to B打洞:
1.A ---> NA ---> Server C ---> NB ---> B
2.B---->A (打洞完成)
1,如果A想与B通信;
2,A首先连接 C, C得到A的外网NA的地址和端口;
3,B也要连接C,C得到B的外网NB的地址和端口;
4,A告诉C说我要和B通讯;
5,C通过NB发信息给B,告诉B A的外网NA的地址和端口;
6,B向NA发数据包(肯定会被NA丢弃,因为NA上并没有 A->NB 的合法session),
但是NB上就建立了有B->NA的合法session了;
7,B发数据包给C,让 C 通知 A,我已经把洞打好了;
8,A接受到通知后向 B 的外网发NB数据包,这样就不会被丢弃掉了。因为对于NB来说,它看到的是A的外网NA的地址,
而通过第6步,B已经让NA成为NB的合法通信对象了。所以当NA发数据包给NB时,NB就会接收并转发给B;
如果是做项目的话 这个方案也许比较合适
现在的P2P软件的内网互联,LowID to LowID也是采用的这类手段
但是路由上有防火墙规则的话,可能会被屏蔽掉
vrhero
2009-12-21
打赏
举报
回复
除非这两台PC其中有一台是完全暴露的DMZ主机或者使用预设TCP或UDP映射的IP,并且这台PC所在的网络有公共IP...
所以...“不必手动设置路由器和防火墙”基本是不可能的,而且如果没有公共IP或第三方公共IP转发就算你“设置路由器和防火墙”也是不可能的...
lindenrty
2009-12-21
打赏
举报
回复
[Quote=引用 3 楼 hyblusea 的回复:]
简单的需求还可以使用WCF或者WEBSERVICE
单纯用SOCKET好像比较困难。我自己没有试成功过。需要用到打洞穿透NAT。
[/Quote]
如果我没理解错打洞技术 也许要第3台公网机器的协助才能实现
jimh
2009-12-21
打赏
举报
回复
要通信就必须要有公网IP和端口,有下面几个方法
1,用公网第三台机器中转
2,其中一台的局域网路由器做一个端口映射,相当于一台机器开放一个公网IP下的端口。
3,应该没有第三条路了
zhouyanfss
2009-12-21
打赏
举报
回复
说难很难,说简单也简单
那就说简单的,用路由器的端口映射功能,就是在各自路由器上设置你TCP通讯的端口映射到各自电脑的IP就可以了
hyblusea
2009-12-21
打赏
举报
回复
简单的需求还可以使用WCF或者WEBSERVICE
单纯用SOCKET好像比较困难。我自己没有试成功过。需要用到打洞穿透NAT。
lindenrty
2009-12-21
打赏
举报
回复
如果就这2台机器 不设路由器似乎没可能
我只看到过这样的例子 2台机器由第三台公网IP的机器中转实现互联
不过这样还不如改网关方便
hyblusea
2009-12-21
打赏
举报
回复
SF??
可以参考一下:
http://www.pudn.com/downloads11/sourcecode/internet/detail45936.html
通过
Socket
通信
实现
局域网
下Amov无人机连接与数据传输
socket
传输数据:
局域网
连接连接---
通信
(命令行直接;+)--- 传输数据(
socket
)--传输内容:launch文件;qgc连接;厂家提供的方式是通过Homer图数传工具(硬件)构建的amov
局域网
实现
通信
连接.好处是
通信
距离足够长,支持150m;坏处是"局部",无法访问
互联网
.[IMAGE:homer连接]根据这个原理,我尝试了通过个人
局域网
(即热点),建立
通信
连接.[ 因为无人机本身带有机载电脑,而主机正常也就能连接热点和wifi ]优点:便捷,且可访问
互联网
:[这意味着对于任何的报错输出你都
HoloLens中基于
Socket
的TCP
通信
系统
HoloLens中基于
Socket
的TCP
通信
系统系统目标服务器端客户端测试与使用 系统目标
实现
服务器端
PC
与客户端HoloLens
通信
。
PC
向HoloLens发送数据,HoloLens接收到数据后,向
PC
发送消息确认。 服务器端 将下面代码挂在Unity场景中。 using System.Collections; using System.Collections.Generic; using System; using System.IO; using UnityEngine; using System
安卓与
pc
的
socket
通信
学校做一个项目要
实现
安卓和服务器的数据
通信
在网上查了一个博客http://blog.csdn.net/ameyume/article/details/8146143
实现
的是同一
局域网
下的安卓和
pc
的soket
通信
但是我实际并不能连接上,下面又评论说是安卓要另起线程, 大家可以给我一个目前的链接吗?? 还有想问一下 安卓和
互联网
服务器(不是在一个
局域网
下,在
互联网
下)进行
通信
的话需
Socket
通信
实现
服务器和客户端对话
广域网和
局域网
介绍
socket
通信
前我们先介绍一下广域网与
局域网
的概念。
局域网
简称LAN,是指在某一区域几台计算机组成的计算机组,
局域网
是封闭的,
局域网
经常采用共享信道,即共用同一条电缆。广域网简称WAN,是一种跨越大的,地域性的地区性网络集合广域网包含大大小小不同的子网,可以是
局域网
,也可以是小型的广域网。广域网为每个单元分配IP地址,
局域网
也会其单元分配IP地址,这两个IP地址互不干扰,一个...
TensorFlow 3D 的 RIO 数据集实战指南:tfds 特征规范、Example Proto 解析与训练评估配置
RIO(Reconfigurable Interaction Objects)是 TensorFlow 3D(tf3d)代码库中官方支持的三个 3D 场景理解数据集之一,本文以仓库文档 [tf3d/doc/rio_dataset.md](https://link.gitcode.com/i/c2add40b9f40c3a82649d5ec7a9e2a8f) 为骨架,结合 [tf3d/dataset
C#
111,128
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章