首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
admin
2009-02-15
54
问题
请阅读以下说明和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://jikaoti.com/ti/uaB7FFFM
本试题收录于:
网络工程师下午应用技术考试题库软考中级分类
0
网络工程师下午应用技术考试
软考中级
相关试题推荐
系统集成商RT公司承担了某企业的业务管理系统的开发建设工作。在项目施工过程中,只有在完成需求分析工作之后,才能开始业务管理系统的系统设计工作。这种需求分析工作与系统设计工作之间的依赖关系属于(39)。
在某系统集成项目风险管理中,项目经理老阮采用因果图和德尔菲技术对风险进行分析,这表明其正在进行(69)。
项目经理老王负责组织内部的一个系统集成项目。因为组织内部的很多人对该系统及其进展感兴趣,他决定准备一份项目沟通管理计划。准备这一计划的第一步是(55)。
以下关于信息系统集成资质等级条件的描述中,错误的是(5)。
(66)是指对拟实施项目技术上的先进性、适用性,经济上的合理性、盈利性,以及实施上的可能性和风险可控性进行全面科学的综合分析,为项目决策提供客观依据的一种技术经济研究活动。
软件配置管理(SCM)是一组用于在计算机软件(38)管理变化的活动。
以下不属于网络接入技术范畴的是(23)。
监理机构应要求承建单位在事故发生后立即采取措施,尽可能控制其影响范围,并及时签发停工令,报(55)。
某公司最近承接了一个大型信息系统项目,项目整体压力较大,对这个项目中的变更,可以使用______等方式提高效率。①分优先级处理②规范处理③整批处理④分批处理
一个项目经理和他的团队正在使用鱼骨图(Ishikawa图)讨论所发现的一个重大质量问题的原因,这属于质量管理中的()。
随机试题
7个月女婴,腹泻呕吐3~4天。查体:神萎,面色苍灰、口唇樱红,前囟眼窝凹陷,皮肤弹性差,心肺未见异常,腹软。入院诊断腹泻病,中度失水,代谢性酸中毒,予补液后出现抽搐。最可能为下列哪项并发症
请认真阅读下列材料,并按要求作答。请根据上述材料完成下列任务:简述什么是类比思想。
某一心理学派提出,被压抑的情绪和心理冲突可成为导致人体功能失调的致病诱因。并断言“范畴广泛的精神过程本身都是潜意识的,而那些有意识的精神过程,只不过是一些孤立的动作和整个精神生活的局部而已”;而且“性的本能冲动在神经和心理疾病成因中起着一种不平凡的巨大作用
有关胰源性溃疡,下列哪项是错误的
招标投标基本程序由招标、()和签订合同六大部分组成。
下列关于资产减值准则中相关内容的表述正确的有()。
民族自治地方区域界线变动的批准机关是()。
测验的效度是指一个测验经过多次测量所得结果的一致性程度。()
撰写公文必须要选择适宜的行文方式,一般不得()。
Believeitornot,opticalillusioncancuthighwaycrashes.Japaniscaseinpoint.Ithasreducedautomobilecrasheson【M1
最新回复
(
0
)