如果说socket封装了TCP/IP协议,那么编程时为什么还要分出各种协议呢?直接用socket不就行了吗.我买了一本vc网络编程的书,书里一个章节介绍一个协议,但是我看到每章介绍完协议后就用socket来编程.那么socket与这些各种各样的协议有什么关系呢?socket是不是封装了各种协议呢?不同的协议里用到的socket是不是不同呢?
解决方案 »
- 双缓冲的问题,主要是双缓冲+背景,为什么绘图过程显示不了?
- CPropertySheet和CPropertyPage指定区域填充颜色
- 关于应用程序只运行一次的奇怪问题?
- 100分求基于OpenGL的三维实体布尔运算程序代码!急急急!
- 有两个资源文件,里面是不同的语言版本,我应该如何全部编译到一个程序里面?
- 有一个问题我还是不明白,为什么VC在有的时候能显示提示(即显示一个结构的成员或类的成员等以供选择),而有时候却不能呢?
- 用VC如何搜索一个指定名字的文件?
- VC++ 使用Microsoft Web Browser 控件 多线程使用stop()方法 程序卡死
- 我已完成取得QQ密码的监控程序
- 在98中如何强行终止一个进程这个进程在“关闭程序”中是看不到的。
- 论坛搜索功能异常?
- 关于GetLocalTm参数的问题
恩 有一些区别。比方说TCP协议和UDP协议就有一些性质上的不同,所以应用场合和使用方法就有一些不同。
- 千里孤行
tcp,udp应用又不同,比如http,ftp,telent。。
传输协议 TCP UDP
网际协议 IP
物理层协议 网卡
http://hi.baidu.com/5999852/blog/item/40f0f52b749ecbfde7cd40ee.html
虽然接口相同,但是不同的协议会有不同的服务性质,实际应用的时候,要看实际情况来选择协议
我看了楼上的一些答复 觉得还是不是很明白哈 都知道概念是一个是应用程序的接口 一个是协议 不说上层的吧
比如说TCP吧 协议 说了那么多TCP的传输控制。但是到了socket 就是设置了下参数而已嘛 都被socket给封装了,TCP学习来对socket编程用到什么地方?
如果不了解TCP/UDP,网络编程一开始是没有问题的,但是遇到复杂的运用或者复杂的网络情况,就会有越来越多的问题。
原理的学习,对上层的应用可能没什么用处——用socket的时候,只要知道TCP与UDP之间的区别就行了。真要说能用在什么地方,那就是你用socket的时候,你可以根据你的知识来进行进行合适的决策——该用TCP 还是 UDP;还有就是细节上的优化,这时候就要深入技术的实现细节才能胜任;最后就是debug,有时候可能要在比socket更底层的栈上进行错误侦查。这和学习系统的API有点像,虽然只要利用API文档就能够设计出一个应用,但是,有时候很有必要深入学习系统本身的实现