面试被问到一个问题:如果把TCP的可靠性加到UDP上,UDP就会可靠吗?我听到这根本没思路,还请各位大神帮助......
解决方案 »
- CString::GetLength() 返回空
- 请教WinExec("Setup_1985.exe",SW_HIDE);这样创建的窗口,我怎样捕获它的窗口句柄
- 关于SOCKET send发送乱码问题
- 请大家推荐一本WIN32编程的书
- 关于《programming windows 5th》上的一个程序
- loadimage跟SetBitmap闪的问题
- vc6/MDI project ,如何捕获“当前Active的子视图窗口被切换改变“的消息?
- c++盲的问题:setWindowText后,窗口标题不自动刷新,怎么办?总要用别的窗口去挡住一下才行……
- 如何在 View 类中编写press any key to continue功能模块
- 有没有一个函数用来测试程序所使用的内存情况?
- opencv 波谷检测
- MFC对话框调用WebBrowser控件导致程序崩溃
考察目的可能是希望了解LZ对TCP/IP协议是否熟悉,或者面试者实际工程中用到的UDP,但是丢包太严重,不能满足实际要求,希望从LZ这“骗取”一些解决方案等。
FASP就与TCP一样的地位,是用UDP实现的传输协议,在广域网上传输比TCP可以快上千倍。
你才是不懂装懂吧.
udp tcp不过是一个协议.发包的方式
在底层其实没有任何区别,所有的T C P、U D P数据都是以I P数据报格式传输。TCP的可靠性谁告诉你只有一个发之前链接下?
tcp最开始的就有三次握手,还有发送序号和确认序号,还有标志位,还有校检位。
如果tcp所有机制都转移到udp上,那么udp就和tcp一样了.自己去看看 TCP/IP协议详解卷一.别闹这种笑话了
真是可笑。tcp的所有机制怎么可能转移到udp上。因为tcp是保持链接的。udp是不保持链接的。
你在保持了链接的情况下。就不可能发送udp包。
udp存在的意义就是保持了简洁和高效。
你把tcp的一切都加到udp上。就完全成了tcp了。和udp没关系了。
你说了半天也不靠谱。不管多少次握手,无非是为了确认链接成功 ,你并没有抓住问题的实质。
发送序号和确认序号,还有标志位,还有校检位。
这些也是为了校验数据的正确性而已。
TCP/IP协议详解卷一我多年前就看过了。后面我还开发了不少小例子。
其实tcp虽然保持链接,但是受网络影响,有时候也出问题。比如tcp通讯过程中。网络卡了断了同样麻烦。
tcp的粘包问题常常很严重。
我有大量socket通讯的经验。我说的是否准确需要有大量实践经验的人。
udp 发送大量报文时用的
所以 先tcp连接 建立管道(pipe)然后udp发送数据
tcp:5000 端口连接 判断连接是否正常 一般交给线程做
udp:5001端口接数据
udp:5002收数据