首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
admin
2009-02-15
119
问题
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。
【说明】
网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。
以下是一个简单的客户机程序(服务器程序略),其工作过程非常简单:客户机与服务器建立连接后,接收服务器向客户机返回的一条消息。
程序中用到了两种结构hostent与sockaddr - in:
hostent类型的结构定义如下:
struct hostent {char*h_name; //主机的正式名称
char * * h_aliases; //别名列表
int h_addrtype; //主机地址类型:AF_XXX
Int H_length; //主机地址长度:4B(32b)
char * * h_addr_list;//主机IP地址列表}
#define h_addr h_addr_list [0]
sockaddr_in类型的结构定义:sockaddr_in是通用套接字结构sockaddr在TCP/IP协议下的结构重定义,为TCP/IP套接字地址结构。
Struct sockaddrin{
short int sin_family;//地址类型AF_XXX,其中AF_INET为TCP/IP专用
unsigned short int sin_port; //端口号
struct in_addr sin_addr; //Internet地址
//端口号以及Internet地址使用的是网络字节顺序,需要通过函数htons转换
}
struct iN_addr{
_u32s_addr; //类型为unsignel_long
}
程序中使用到了多个函数:
struct hostent * gethostbyname(const char*hostname);
函数gethostbyname查询与指定的域名地址对应的IP地址,返回一个hostent结构的指针,如果不成功则返回NULL。
int_socket(int domain,int_type,int protocol);
函数socket创建一个套接字描述符,如果失败返回-1。domain为地址类型,type为套接字类型,本题中为SOCK_STRBEAM;protocol指定协议,本题中为0。
int connect(int sockfd,struct sockaddr*servaddr,int addrlen);
函数connect与服务器建立一个连接,成功返回0,失败返回-1。servaddr为远程服务器的套接字地址,包括服务器的IP地址和端口号;addrlen为地址的长度。
int read(int fd,char * buf,int len);
int write(int fd,char * buf,int len);
函数read和write从套接字读和写数据,成功返回数据量大小,否则返回-1。buf指定数据缓冲区,len指定接收或发送的数据量大小。
【Socket程序】
//程序中引用的头文件略
#define PORT 3490
//定义端口号为3490
int main(int argc,char*argv[])
{ int sockfd,nbytes; //套接字描述符、读入缓冲区的字节数
char buf [1024]; //缓冲区
struct hostent * he; //主机信息类型
struct sockaddr_in srvaddr; //Internet套接字结构
if( (1) )
{ perror(“调用参数为零,请输入服务器的主机名!\n”); exit(1);}
if( (2) ) //如果通过主机名没有获得对应的主机信息就提示用户
{ perror(“无法通过主机名获得主机信息!\n”); exit(1);}
if( (3) ) //在无法创建套接字时,提示用户
{ perror(“无法创建套按字!\n”); exit(1);}
bzero(&srvaddr,sizeof(srvaddr)); //置空srvaddr
srvaddr, sin_family=AF_INET;
srvaddr, sin_port: (4) ;srvaddr.sin_addr: (5) ;
//设置套接字结构的各项信息,其中的地址来自域名查询后的hp变量
if(connect(sockfd, (n) ,sizeof(struct sockaddr))==-1)
{ perror(“连接失败!\n”); exit(1);}
//连接服务器,如果失败则提示用户
if((nbytes=read(sockfd,buf,MAXDATASIZE))==-1)
{ perror(“读失败!\n”);exit(1);}
//从套容接字中读出数据
buf [nbytes]=’\0’;
printf(“读到的内容:%s”,buf);
close(sockfd);
//打印数据并关闭套接字
}
选项
答案
(1) argc! =2 (2) (he=gethostbyname(argv[1]))==NULL (3) (sockfd=socket(AF_INET, SOCK_STREAM.0))==-1 (4) htons(PORT) (5) *((struct in_addr * )he->h_addr) (6) (struct sockaddr * ) &srvaddr
解析
转载请注明原文地址:https://www.kaotiyun.com/show/exPZ777K
本试题收录于:
网络工程师下午应用技术考试题库软考中级分类
0
网络工程师下午应用技术考试
软考中级
相关试题推荐
以下不是WBS的正确分解方法(结构)的是(36)。
通常,变更控制流程的作用不包括(65)。
图6-4所示为某系统集成项目的网络工程计划图。从图6-4可知,至少需要投入(62)人才能完成该项目(假设每个技术人员均能胜任每项工作)。
在系统集成项目中,采取相应的措施保护计算机网络设备免受环境事故的影响,属于ISO/IEC27000系列标准中信息安全管理的(2)范畴。
经项目各有关干系人同意的(58)就是项目的基准,为项目的执行、监控和变更提供了基础。
根据中华人民共和国政府采购法,下面关于采购方式的说法中______________是不正确的。
软件架构模式描述了如何将各个模块和子系统有效地组织成一个完整的系统。分层通信协议(如ISO/OSI的七层网络模型)所采用的架构模式是()。
详细的项目范围说明书主要包括内容是()。①项目的目标②工作说明书③产品的验收标准④项目的边界⑤产品范围描述⑥论证项目的业务方案,包括投资回报率⑦项目的约束条件
刘工是某信息系统项目的项目经理,项目团队已经定义好了项目范围并且设计了一份材料清单来代替WBS,客户在对材料清单进行评审时发现其中缺少一项会导致范围变更的需求,后来这一变更需求被补充了进去。造成这一次范围变更的主要原因是()。
(2011年上半年)某公司有一台Linux文件服务器,多台Windows客户端和Linux客户端。要求任意一个客户端都可以共享服务器上的文件,并且能够直接存取服务器上的文件。客户端和服务器间应该使用(23)协议。
随机试题
从甲地到乙地原来每隔42米要装一根电线杆,加上两端的两根,一共有61根电线杆,现在改成每隔56米装一根电线杆,若两端的两根不移动,则中途有多少根不需要移动?()
A.固位体B.桥体C.固定连接体D.活动连接体E.小连接体恢复缺失牙形态和功能的是
下列关于防治海岸工程建设项目对海洋环境的污染损害的说法,符合《中华人民共和国海洋环境保护法》规定的是()。
提前确定给付年限的年金是( )年金。
纳税人在熟知税法及其规章制度的基础上,在不直接触犯税法的前提下,通过对筹资活动、投资活动、经营活动等的巧妙安排,达到规避或减轻税负的行为是( )。
根据《商业银行贷款损失准备管理办法》,贷款损失准备是指商业银行在成本中列支、用以抵御贷款风险的准备金,不包括在利润分配中计提的—般风险准备。()
甲市的A、B两店为实行统一核算的连锁店。根据增值税法律制度的规定,A店的下列经营活动中,不属于视同销售货物行为的是()。
你对某企业进行税务检查时.有企业人员私下送你一万块钱。请你报税时少报一些,你该怎么办?
按明文的处理方法,密码系统可以分为分组密码和【 】。
Computerscanprovideinformationwhichallowsbusinessmento______theirlistofgoods,byshowingwhichitemsarebeingsolda
最新回复
(
0
)