社区
网络编程
帖子详情
P2P客户端该Bind几个UDP端口?
SmallBigCat
2004-12-27 10:24:29
谢谢,请有经验的老鸟答复,分不够可以再加!
...全文
410
26
打赏
收藏
P2P客户端该Bind几个UDP端口?
谢谢,请有经验的老鸟答复,分不够可以再加!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SmallBigCat
2004-12-31
打赏
举报
回复
再订
yaotang
2004-12-30
打赏
举报
回复
不错,关注
SmallBigCat
2004-12-30
打赏
举报
回复
顶
oyljerry
2004-12-29
打赏
举报
回复
Symmetric NAT的端口会变化,需要猜测
oyljerry
2004-12-29
打赏
举报
回复
每个应用一个端口号
SmallBigCat
2004-12-29
打赏
举报
回复
再顶
SmallBigCat
2004-12-29
打赏
举报
回复
to oyljerry(☆勇敢的心☆-Paper Reviewing):
是一个应用,只是会与多个在线好友同时对话
SmallBigCat
2004-12-28
打赏
举报
回复
to phoenixsharp(小星星):
1.是有一个公网的服务端
2.我这里指常用的、非Symmetric NAT
与你QQ的原理是一样的,就是在某种特定的NAT下,比如A有3个好友B、C、D在线,A会定时给B、C、D发送激活包(当然B、C、D也会给A发送激活包);此时A如果想与B、C、D中的任一方发送消息,就会不通;如果A的好友只有B、C、D中的一个在线,则A发送消息就能通过;
现在还不能确定是A所在NAT的原因,还是B、C、D所在NAT的原因,测试中B、C、D是在一个NAT下,其NAT类型为Symmetric NAT
phoenixsharp
2004-12-28
打赏
举报
回复
1.俺也做过QQ,不知道楼主的具体程序结构是怎么样的?把你的大致思想说出来看看,应该有一个公网的服务端吧?请详表。
2.非对称NAT是不是俺说的那种一个SOCKET发给多个人,NAT会生成不同的端口?不好意思,俺对概念不是很感冒?有劳解释一下。
P.S:我写的QQ只需要知道众好友的(经NAT的)IP:PORT--》通过SERVER获得;即可通讯。
SmallBigCat
2004-12-28
打赏
举报
回复
顶,人人有分
skfox
2004-12-28
打赏
举报
回复
uo
SmallBigCat
2004-12-28
打赏
举报
回复
to phoenixsharp(小星星):
是及时通讯方面的应用;
现在遇到的问题是:
有A在某些端口限制的非对称NAT下登录,如果A同时与多个在线好友对话,此时A与好友之间的UDP通道是不能够通的(及对方收不到A发送的激活包);如果A只有一个在线好友或只与其中一个好友对话,则对方能够收到A发送的激活包;经检测A的NAT类型为端口受限的非对称NAT;
不知这种情况如何解决?
phoenixsharp
2004-12-28
打赏
举报
回复
楼主究竟是什么应用,为什么要开多个端口,而且还要BIND/?,一个端口也可以干很多不同的事啊,数据里弄一个标识头,什么样的类型干什么样的事。
有些NAT是这样:A to S 和 A to B会NAT不同的端口,如A TO S(NAT PORT:2003) 而A 再发数据给B,NAT PORT 变增为2004或其它,这是一种不愿意看到的行为;而大多数的NAT保持端口不变,只是在这个端口上加一个A TO B的SESSION。这是值得表扬的~~~~
SmallBigCat
2004-12-28
打赏
举报
回复
顶
kingzai
2004-12-27
打赏
举报
回复
一般是一个端口。如果在同一台机,开多个实例,比如开两个QQ,就是一个4000,另外一个则4001
SmallBigCat
2004-12-27
打赏
举报
回复
谢谢
我问的是诸如及时通讯之类的软件,需要绑定几个端口
zhangqu_980371
2004-12-27
打赏
举报
回复
20000以上就没有问题了(不要和系统、其他软件有冲突就可以)。
到了网关,网关会转换的别的断口。
SmallBigCat
2004-12-27
打赏
举报
回复
比如QQ一样的及时通讯之类的
HunterForPig
2004-12-27
打赏
举报
回复
说说你的具体应用
kingzai
2004-12-27
打赏
举报
回复
看具体的应用
加载更多回复(6)
IOCP_API(2.4)
1. 连接oracle时,目录中不能有()字符,否则ADO是无法连接数据库的 修改: 2.1 去掉TCPChannel的BuildPacket函数,改成直接由OnRecv回调函数返回实际数据 去掉
UDP
Channel的Response函数,改成直接由内部处理 2.2 修改TCPChannel类,实现同步调用接口 定义IRPC接口用来处理同步调用的被调用端 定义
Bind
函数用来绑定IRPC接口的实例 定义CallEx函数用来实现用户同步调用 2.3 添加bInit变量,用于设置初始化和关闭状态。 设置此变量的目的主要是用来控制,在关闭了socket之后,后续的任何投递都不执行。 修改了IRPC接口名称为IRemoteProcCall,并且调整了部分结构体名称,如RPC相关的结构体, 组合包相关的结构体,以及
P2P
相关的结构体。 修改TCPChannel类的接口函数
Bind
成
Bind
Ex,使之与TCPChannel的其他接口统一命名。 修改测试Demo,添加多发选项 修改DataType.h中的内存块大小定义 封装临界区类,信号量类 修改TCPListener接口类中的EnumSockets接口,添加pArg参数 Socket类添加ReUseAddr函数,用来设置
端口
重用 TCPSocket接口类添加GetListener接口用来获得链接管理对象 修改Demo实例中的TCP
客户端
部分,增加可更改
客户端
连接数 2.4 添加UDT支持 修改
UDP
Channel接口类,添加UDT支持接口函数 添加日志支持 添加接口类ILogger,用来实现对日志的输出 添加x64的编译环境 添加部分WARN级别的日志输出 添加C接口,方便非C++语言应用 UDT添加特性,关闭UDT时,给对端发送断线信息,通知对端断线 UDT提高效率,UDT句柄部分改用读写锁来控制,以提高效率 修改OnSend和OnSendTo的行为 修改过的BUG: 1. 数据发送时,如果数据大小正好是MAX_PACKET_SIZE个字节的话,数据发送不出去,在计算包大小时,边界值没处理好。 2. IOCPUnhandledException函数内部逻辑错误,没有关联到自己的异常处理函数中,导致即使调用成功,程序异常了,也无法写dump文件。 3. 修复IOCP
UDP
Release模式下不能正常运行的BUG。由于传递的输出参数使用了局部变量导致的问题 4. 修复UDT发送时,计算尾包大小错误 5. 修复UDT快速发送错误 6. 修改Queue关闭时,如果有线程正在等待信号,会导致线程死等
如何区分和理解TCP和
UDP
协议?
1、TCP与
UDP
区别总结: 1)TCP面向连接(如打电话要先拨号建立连接);
UDP
是无连接的,即发送数据之前不需要建立连接。 2)TCP有保证、靠得住。通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;
UDP
尽最大努力交付,即不保证可靠交付。 3)TCP效率慢,
UDP
实时性好,工作效率比TCP高,适用于高速传输和实时性较高的通信或广播通信。 4)每一条TCP连接只能是点对点;...
关于socket的地址复用和
端口
复用技术与
UDP
并发
可以看作是内核级负载均衡。观察上述代码,可以注意到,当获知了
客户端
的源
端口
和源ip后,会将新
udp
socket连接到该
客户端
(执行了connect操作),这样一来,新的
udp
socket五元组就唯一确定了,下一次该
客户端
再发数据包,就会直接找到这个新的
udp
socket,放到指定缓冲区,而不会随机分配了。socket是系统级资源(区别于进程级和线程级,在本机上是全局唯一的),可以人为绑定本地ip和
端口
,与协议类型,对端ip,对端
端口
一起,作为该socket在本机上的唯一标识。
P2P
中的
UDP
穿透方法以及PYTHON实现
P2P
中的
UDP
穿透方法
再探
P2P
之
UDP
内网穿透实例 c++
公网服务器端: 单线程,循环接收连接请求。之后转发两个
客户端
的IP和
端口
,转发发完成后自行关闭。 /* 文件:server.c PS:第一个连接上服务器的
客户端
,称为client1,第二个连接上服务器的
客户端
称为client2 这个服务器的功能是: 1:对于client1,它返回"first",并在client2连接上之后,将client2经过转换后的IP和port发给client1; 2...
网络编程
18,356
社区成员
64,217
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章