UDP方式连接如何确定连接成功与否?

wuleeemail 2008-10-03 09:47:43
两台不在同一网段的计算机使用UDP进行交互,在开始的时候需要一个“连接成功”标示。这里网络编程使用的都是WinSock最基本的一些函数,没有去用MFC中的那些类来实现。想了许多办法,可是总感到这些办法很笨,而且应该有很简单的方法来实现。因此到这里来征求大家的建议,如何最简单能获得两台机器交互通了没有的信息?知道的朋友能否给一个说明!谢谢!
...全文
2765 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
内存泄漏 2008-10-03
  • 打赏
  • 举报
回复 2
UDP是面向无连接的协议,又哪来的判断连接成功与否?? 最多只能发个消息过去判断对方指定的UDP端口是否在侦听..
adriano119 2008-10-03
  • 打赏
  • 举报
回复
UDP是用户数据报发送,他本身没有你所说的功能的
但是可以你自己实现,你想另一端发送一个数据包,你让另一端接受到数据后向你发送一个确认数据包,如果你发送以后受到一个确认数据包,就是连接成功了
还有就是在通信过程中服务器可以定时想客户端发送数据包,让客户端回应,以确认其在线
迷途的书童 2008-10-03
  • 打赏
  • 举报
回复
学习。。,帮顶!
erwin1984 2008-10-03
  • 打赏
  • 举报
回复
UDP只能简单发送数据包,不能直接确定数据包是否已经成功发送到目的地。

如果需要确认数据包是否成功发送到目的地,可以在双方之间实现响应协议,即发送一个数据包,对方在收到之后回应一个数据包表示接收到了,发送方在收到回应包之后确定已经发送成功了。

因为简单的响应中还存在很多问题(具体为何你可以考虑下),如果需要可靠的响应,参考TCP的实现的三层握手协议,对你的实现很有帮助。
danscort2000 2008-10-03
  • 打赏
  • 举报
回复
我刚好自己写了一个TUDP库
如果有需要,可以参考下我的实现
工程 VC 2005的示范
http://www.snowware.com/cn/tudptest.zip
两个线程,一个模拟发送方
一个模拟接收方
wuleeemail 2008-10-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 adriano119 的回复:]
UDP是用户数据报发送,他本身没有你所说的功能的
但是可以你自己实现,你想另一端发送一个数据包,你让另一端接受到数据后向你发送一个确认数据包,如果你发送以后受到一个确认数据包,就是连接成功了
还有就是在通信过程中服务器可以定时想客户端发送数据包,让客户端回应,以确认其在线
[/Quote]

我本来就是这样做的。只是后来看到书上那种用MFC里使用相关类能很方便解决问题时才又返回来思考的。谢谢了!

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧