首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
请阅读以下说明和Socfon程序,将应填(n)处的字句写在对应栏内。 【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。 以下是一个简单的客户机程序(服务器程序略),其工
admin
2009-02-15
122
问题
请阅读以下说明和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://kaotiyun.com/show/exPZ777K
本试题收录于:
网络工程师下午应用技术考试题库软考中级分类
0
网络工程师下午应用技术考试
软考中级
相关试题推荐
以下不属于沟通管理范畴的是(54)。
质量控制非常重要,但是进行质量控制也需要一定的成本,(47)可以降低质量控制的成本。
某工程计划如图2-3所示,图中标注了完成任务A~H所需的大数,其中虚线表示虚任务。经评审后发现,任务D还可以缩短4天(即只需6天就能完成),则总工程可以缩短(41)天。
某个系统集成项目为了修正一个错误而进行了变更。这个错误被修正后,却引起以前可以正确运行的代码出错。(11)最可能发现这一问题。
系统集成商Y公司承担了某企业的业务管理系统的开发建设工作,Y公司任命陈工为项目经理。陈工估计该项目20天即可完成,如果出现问题耽搁了也不会超过28天完成,最快18天即可完成。根据项目历时估计中的三点估算法,该项目的历时为(49),该项目历时的估算方差约为(
(31)不属于项目章程的组成内容。
信息系统安全包含了信息的保密性、数据完整性、可用性、不可抵赖性和真实性等。防范DDoS攻击是提高(4)的措施。
某系统集成企业为做好项目配置管理。对配置库中的操作权限进行了以下定义: 同时,对项目相关人员在该产品库中的操作权限进行了如下分配,其中√表示该人员具有相应权限,×表示该人员没有相应权限。 则产品库权限分配表中用①②③④⑤标出的位置,应填写的内容
根据《软件工程产品质量第1部分:质量模型GB/T16260.1—2006》,软件产品避免由于软件修改而造成意外结果的能力称为软件产品的()。
(2013年上半年)建立一个概率模型或者随机过程,使它的参数等于问题的解,然后通过对模型或过程的观察计算所求参数的统计特征,最后给出所求问题的近似值,解的精度可以用估计值的标准差表示。这种技术称为(46)方法。
随机试题
师陀的《果园城记》是()
下列属于药品不良反应报告主体的有
甲、乙均是美国人,甲长期在中国某公司工作,并且在中国有固定的居住地,乙在法国临时工作和生活。在2002年夏天,乙应甲之邀请前来中国旅游,期间二人因为驾车不慎,将一中国人丙撞伤,丙遂在中国法院起诉甲、乙。此时甲仍在中国工作生活,而乙回到了法国。同时,甲、乙在
下列关于息税前利润、每股收益(EPS)杠杆效应陈述,正确的是:
商业银行的非预期损失由()来弥补或应对。
商业银行采用操作风险标准法计算监管资本时,将所有业务分为九个业务线,每个业务线对应的资本要求系数(以β表示)不同,监管规定的β值包括()。
在完全市场经济条件下,货币均衡最主要的实现机制是()。
知识与技能、过程与方法、情感态度与价值观构成了当前我国课程的三维目标。()
小美要去外地出差,坐公交车到火车站,假设速度为每小时20公里,出发后50分钟发现忘记带身份证,家人必须在25分钟内送到,则家人乘坐的出租车至少时速要达到多少公里才能在25分钟内把身份证送到?()
如果工资率提高,收入效应将导致消费者()。
最新回复
(
0
)