社区
网络编程
帖子详情
紧急求助!关于客户端管理多UDP套接字,采用什么模型可以具备超时重发机制?
softrain
2005-04-27 10:01:11
我的UDP套接字可能有上百个,如何使用很少的线程就可以对套接字能有效管理?
如果能解决问题,再开两个帖子给200分。
...全文
215
15
打赏
收藏
紧急求助!关于客户端管理多UDP套接字,采用什么模型可以具备超时重发机制?
我的UDP套接字可能有上百个,如何使用很少的线程就可以对套接字能有效管理? 如果能解决问题,再开两个帖子给200分。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
softrain
2005-04-28
打赏
举报
回复
刚才写了很多,提交时server unavailable.经常这样,我看CSDN的服务器支撑不下去。
ddgfei(不懂规矩) :
你说的那种方法恐怕不行。
你这样只是保证发送出去,是否送到是不确定的。对方能否返回给你也是不确定的。
所以我对每个套接字保存了一个发送缓冲区,时间戳,发送序列号和请求序列号,这样可以解决问题。
仿照的是TCP的实现。
ddgfei
2005-04-28
打赏
举报
回复
更确切的说要想实现超时重发只有在缓冲区中来写了
while(Buffer.getLength() >= 0)
if(nret = sendto(socket,Buffer.read,....);
{
if(GetLastError() == WSAEWOULDBLOCK)
{
TRACE("Blocking\n");
Sleep(100);
break;
}
else
Buffer.remove(nret);
}
mango279
2005-04-28
打赏
举报
回复
UDP能实现无条件NAT透传??请教: softrain(敢笑杨过不痴情)
softrain
2005-04-28
打赏
举报
回复
TCP无法实现NAT传透
我说的超时重发机制是说在一个套接字超过某个时间没有收到消息,系统应该能通知到我。这样我可以重新发送数据。否则UDP通讯无法进行下去了。
ddgfei
2005-04-28
打赏
举报
回复
而且你这样实现的话还不如去使用TCP/IP方法,何必要使用UDP呢,难道你认为你写的代码会比Windows那帮家伙更厉害。UDP本身是用于不可靠,无连接的方法。
假如我是你,我会选择TCP/IP方法,而不是UDP方法
ddgfei
2005-04-28
打赏
举报
回复
什么意思?
发送缓冲区肯定要有,UDP本来就是不可靠的传输协议。你说的一些时间戳,发送序列号和请求序列号这些也只是从另外一端发回来的握手信息。跟你的问题好像没有关系。
你的问题是“具备超时重发机制”
ddgfei
2005-04-27
打赏
举报
回复
leon7909(leon) 你大爷。
老子在后面不是说过了可以只开一个evenselect模型也是可以满足要求的吗。
你说几百个,我信吗!!!
如果同时发送超过8。5k的数据,接收端就会出现问题。
这时就要使用完成端口模型。你他妈知道吗?我自己逐个试的。
ddgfei
2005-04-27
打赏
举报
回复
不是不支持,我实现了事件模型,也实现了完成端口模型的封装,发现它和事件模型没什么区别,因为是数据报。所以发送的数据可以全部收到。你可以在发送端写一个缓冲区,如下
while(Buffer.getLength() >= 0)
if(nret = sendto(socket,Buffer.read,....);
Buffer.remove(nret);
}
注意:UDP你不能确认是否接收到数据。所以也就没有超时重发的问题
nuaawenlin
2005-04-27
打赏
举报
回复
UDP的没有重传机制,只能由应用层来解决
如果数据交换不是非常频繁的话
使用事件选择或是select模型即可满足你的要求
leon7909
2005-04-27
打赏
举报
回复
The variable FD_SETSIZE determines the maximum number of descriptors in a set. (The default value of FD_SETSIZE is 64, which can be modified by defining FD_SETSIZE to another value before including Winsock2.h.)
softrain
2005-04-27
打赏
举报
回复
超时重发我已经决定了字节写。
EVENTSELECT模型一个线程最多支持64个套接字,这个限制会导致需要开辟很多线程。
UDP在EVENTSELECT模型中可以很好工作,但是在完成端口中没有反应,是不是不支持啊?
leon7909
2005-04-27
打赏
举报
回复
开口闭口就是完成端口,几百个连接用select就能工作得挺好,不过不管是哪个模型也不能具备你所说的udt超时重发机制,这个是要自已写的.要么干脆就用tcp
ddgfei
2005-04-27
打赏
举报
回复
IO完成端口模型,或者你只开一个线程,使用evenselect模型也是可以的,不管你有多少个套接字
考研408之计算机网络精炼总结
本人在考研过程中二刷王道计算机网络时一步步总结出来的内容,既精简,也全面,包括几乎所有知识点和细节,将45万字的书最终浓缩进了这一万六千字! 目录 1、计算机网络体系结构 组成 五大功能 分类 性能指标 协议、接口、服务 ISO/OSI参考
模型
和TCP/IP
模型
2、物理层 基本概念 传输介质 接口特性 物理层设备 3、数据链路层 为网络层提供服务 差错控制 流量控制与可靠传输
机制
介质访问控制 局域网 广域网 数据链路层设备 4、网络层 网络层功能 路由
计算机网络知识点整理
Ch1 网络概论 计算机网络的定义:把不同地理范围内,用若干台具有独立处理能力的计算机,用传输介质连接在一起,并配备以完备的网络操作系统,使之能够数据传输,设备共享。 计算机网络的简单定义是一些相互连接的、自治的计算机的集合。 互联:通过通信链路互联 自治:无主从关系 计算机网络是计算机与通信技术结合的产物。 从网络的作用范围进行分类,计算机网络可以分为:LAN(局域网)、WAN(广域网)和MAN(城域网)等。 (1)广域网(WAN):提供长距离通信;也称远程网;广域网是因特网的核心部分;连接广域网
【考研408】计算机网络笔记
文章目录计算机网络体系结构计算机网络概述计算机网络的组成计算机网络的功能计算机网络的分类计算机网络的性能指标课后习题计算机网络体系结构与参考
模型
计算机网络协议、接口、服务的概念ISO/OSI参考
模型
和TCP/IP
模型
课后习题物理层通信基础基本概念奈奎斯特定理与香农定理编码与调制电路交换、报文交换、分组交换数据报与虚电路课后习题传输介质双绞线、同轴电缆、光纤、无线传输介质物理层接口的特性课后习题物理层设备中继器集线器总结数据链路层数据链路层的功能为网络层提供的服务链路
管理
帧定界、帧同步与透明传输流量控制差错控
计算机网络
本部分内容从计算机网络体系结构、物理层、数据链路层、网络层、传输层和应用层分别来讲述。 第一章: 计算机网络体系结构 本章内容为基本概念,这是计算机网络的基础。 重点掌握网络的分层结构,尤其是ISO/OSI参考
模型
各层的功能和协议、接口、服务的概念。 1. 计算机网络的概念 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功...
计算机网络期末考试重点
(1)两种参考
模型
:OSI参考
模型
、TCP/IP参考
模型
(2)各层的基本功能(自上而下)①应用层: 应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。互联网中的应用层协议很多,如域名系统DNS、支持万维网应用的 HTTP协议、支持电子邮件的SMTP协议,等等。我们把应用层交互的数据单元称为报文(message)。②运输层: 运输层的任务就是负责==向
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章