免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 蓝色键盘
打印 上一主题 下一主题

*******网络编程基础( 讨论版V1 )******* [复制链接]

论坛徽章:
0
1 [报告]
发表于 2003-04-02 18:23 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

好累啊
要真仔细说的话还是真的累
因为知识点很多了

2TCP是有连接的,UDP是无连接的。有连接的话保证数据流准确按序收发,并且在收发错误时会报错

UDP不保证发送的按序,并且不保证能够发送,当然如果网络没有问题的话
那么使用它还是会发送成功的
3 IPV4 和V6区别在于IP地址长度不一样
另外如果在IP层比较的话
那么它们的包长不一样
还有
IPV6分包只能在发送方进行

论坛徽章:
0
2 [报告]
发表于 2003-04-03 12:38 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

大家都讨论得很激烈
看来论坛中还是藏龙卧虎之地很不错

另外
如果client发送的数据被路由丢弃或者服务器的应答信息丢失,那么client将一直阻塞,直到应用设置的超时到达

我觉得UDP就是发送以后不管的
只是向UDP端口写完数据后就返回
不会等待是不是发送成功

论坛徽章:
0
3 [报告]
发表于 2003-04-03 18:03 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

如果是经常进行TCP/IP编程的话
研究深层理论还是很不错的
这样可以了解和使用socket的高级功能
如setsockopt等

如果调用shutdown的话,那么被shutdown端的的端口内数据会全部丢弃
端口关闭

这点和ckose不同
close是直到把端口内数据全部发送完后才关闭端口的

不知是不是这样

论坛徽章:
0
4 [报告]
发表于 2003-04-03 18:36 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

shutdown全关闭好像中直接清空缓冲区,和close不同
这点在UNIX网络编程上有比较


close只是减少引用数
等到引用数为0时才真正关闭

论坛徽章:
0
5 [报告]
发表于 2003-04-03 19:12 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

我说的主要区别是使用shutdown时缓冲区会清空

但是close时不会清空,只有缓冲区内数据全部发送后才关闭

论坛徽章:
0
6 [报告]
发表于 2003-04-03 19:14 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

这点是很久以前在UNIX网络编程
上看到的,但应该是这样

使用shutdown的话,因为数据缓冲区被清空,所以没有发送的内容会丢掉
一般是很少用
而使用close更安全一点

论坛徽章:
0
7 [报告]
发表于 2003-04-04 08:43 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

shutdown 函数
close有两个限制可由函数shutdown来避免:

close将描述字的访问计数减1,仅在此计数为0时才关闭套接口
shutdown可激发TCP的正常连接终止序列, 而不管访问计数。
这里的内容还是比较有用的,以前一直没有注意

close终止了数据传送的两个方向:读和写。
shutdown终止的数据传送的两个方向:读和写, 或其中任一方向:读或写

定义:
int shutdown( int sockfd, int howto) ;

howto选项:
SHUT_RD 关闭连接的读一半
SHUT_WR 关闭连接的写这一半
SHUT_RDWR 关闭连接读读和写

论坛徽章:
0
8 [报告]
发表于 2003-05-12 13:05 |显示全部楼层

*******网络编程基础( 讨论版V1 )*******

FAQ
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP