当前位置 :
socket(PF_INET,SOCK_STREAM,0);//socket编程,参数置AF_INET;与PF_INET区别是什么
7人问答
问题描述:

socket(PF_INET,SOCK_STREAM,0);//socket编程,参数置AF_INET;与PF_INET区别是什么

陆卫回答:
  AF表示ADDRESSFAMILY地址族   PF表示PROTOCOLFAMILY协议族   但这两个宏定义是一样的   所以使用哪个都没有关系   Winsock2.h中   #defineAF_INET0   #definePF_INETAF_INET   所以在windows中AF_INET与PF_INET完全一样   而在Unix/Linux系统中,在不同的版本中这两者有微小差别   对于BSD,是AF,对于POSIX是PF   UNIX系统支持AF_INET,AF_UNIX,AF_NS等,而DOS,Windows中仅支持AF_INET,它是网际网区域.   在函数socketpair与socket的domain参数中有AF_UNIX,AF_LOCAL,AF_INET,PF_UNIX,PF_LOCAL,PF_INET.这几个参数有AF_UNIX=AF_LOCAL,PF_UNIX=PF_LOCAL,AF_LOCAL=PF_LOCAL,AF_INET=PF_INET.   建议:对于socketpair与socket的domain参数,使用PF_LOCAL系列,而在初始化套接口地址结构时,则使用AF_LOCAL.   例如:z=socket(PF_LOCAL,SOCK_STREAM,0);adr_unix.sin_family=AF_LOCAL;
吕永健回答:
  最后一个参数0是什么意思
陆卫回答:
  protocol:套接口所用的协议。如调用者不想指定,可用0。
吕永健回答:
  第一个参数不是协议吗?接口协议什么作用大哥?
陆卫回答:
  第一个参数是协议簇或者地址簇,其实到目前为止是一一对应的,当初之所区分开,据传说是因为有的专家认为可能出现一个协议簇支持多种不同地址的可能.但到目前貌似都没有出现这样的协议.第三个参数就是协议类型,说白了就是你跟对方是怎么传递信息的,比方说你要传消息给你的朋友,你们之间商量了消息的格式,你朋友接受到了很多消息,如果不符合你们商量的格式他会不予理睬,而你们商量的内容其实就是协议,对这些协议的总合,给他取个名字,这就是协议类型第三个参数通常将此设为0即IPPROTO_IP,是因为协议类型可以根据Socket的类型来确定,比如Sock_STREAM就是使用TCP协议,而SOCK_DGRAM就是使用UDP协议
吕永健回答:
  大哥第三个参数为什么没有用过?你们之间商量了消息的格式多好啊
陆卫回答:
  这个只是打个比方,实际上这些消息的格式都是标准协会定死了的,你只能选择一种使用。当然如果你很牛的话也可以自己开发一个标准的协议格式,只要你跟交互的对象之间同时使用,那服务器也是可以解析你发给它的消息的,不过能开发协议格式的人世界上又有几个呢?
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞