网络工程师模拟试题6及答案(下午题)
- 格式:doc
- 大小:203.50 KB
- 文档页数:8
试题一阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
【说明】某企业组网方案如图1-1所示,网络接口规划如表1-1所示。
公司内部员工和外部访客均可通过无线网络访问企业网络,内部员工无线网络的SSID为Employee,访客无线网络的SSID为Visitor。
图1表1【问题1】(6分)防火墙上配置NAT功能,用于公私网地址转换。
同时配置安全策略,将内网终端用户所在区域划分为Trust区域,外网划分为Untrust区域,保护企业内网免受外部网络攻击。
补充防火墙数据规划表1-2内容中的空缺项。
注:Local表示防火墙本地区域:srcip表示源ip。
【问题2】(4分)在点到点的环境下,配置IPSec VPN隧道需要明确( 4)和(5)【问题3】(6分)在 Switch1上配置ACL禁止访客访问内部网络,将Switch1数据规划表1-3内容中的空缺项补充完整。
【问题4】(4分)AP控制器上部署WLAN业务,采用直接转发,AP跨三层上线。
认证方式:无线用户通过预共享密钥方式接入。
在Switch1上GEO/O/2连接AP控制器,该接口类型配置为(9)模式,所在VLAN是(10)。
试题二(共 20分)阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】图2-1是某企业网络拓扑,网络区域分为办公区域、服务器区域和数据区域,线上商城系统为公司提供产品在线销售服务。
公司网络保障部负责员工办公电脑和线上商城的技术支持和保障工作。
【问题1】(6分)某天,公司有一台电脑感染“勒索”病毒,网络管理员应采取( 1 )、(2)、(3)措施。
(1)~(3)备选答案:A.断开已感染主机的网络连接B.更改被感染文件的扩展名C.为其他电脑升级系统漏洞补丁D.网络层禁止135/137/139/445 端口的TCP连接E.删除已感染病毒的文件【问题2】(8分)图 2-1 中,为提高线上商城的并发能力,公司计划增加两台服务器,三台服务器同时对外提供服务,通过在图中(4)设备上执行(5)策略,可以将外部用户的访问负载平均分配到三台服务器上。
网络工程师考试试题(含答案)一、单项选择题1.关于链路状态协议与距离矢量协议的区别,以下说法中错误的是()。
A.链路状态协议周期性地发布路由信息,而距离矢量协议在网络拓扑发生变化时发布路由信息B.链路状态协议由网络内部指定的路由器发布路由信息,而距离矢量协议的所有路由器都发布路由信息C.链路状态协议采用组播方式发布路由信息,而距离矢量协议以广播方式发布路由信息D.链路状态协议发布的组播报文要求应答,这种通信方式比不要求应答的广播通信可靠【解析】链路状态协议和距离矢量协议类似,都会周期性地发布路由信息。
【正确答案】A2.100BASE-FX采用4B/5B和NRZ-I编码,这种编码方式的效率为。
A.50%B.60%C.80%D.100%【解析】4B/5B编码法就是将数据流中的每4bits作为一组,然后按编码规则将每一个组转换成为5bits,因此效率为4/5=80%。
【正确答案】C3.在层次化园区网络设计中,()是接入层的功能。
A.高速数据传输B.VLAN路由C.广播域的定义D.MAC地址过滤【解析】此题主要考查了网络三个层次结构的特点,以及提供不同的服务。
接入层是网络系统的最外层,为用户提供了网络访问接口。
接入层面向终端用户,必须适用多种类、多节点、多连接类型的需求,实现多种类型的综合接入和传输。
汇聚层主要是作为楼群或小区的聚汇点,连接接入层与核心层网络设备,为接入层提供数据的汇聚、传输、管理和分发处理。
汇聚层为接入层提供基于策略的连接,如地址合并、协议过滤、路由服务、认证管理等,通过网段划分()与网络隔离()可以防止某些网段的问题蔓延和影响到核心层。
核心层是各子网和区域网络中所有流量的最终汇集点和承受者,实现骨干网络数据的优化传输,其主要特征是冗余设计、负载均衡、高带宽和高吞吐率。
网络系统的安全性控制和用户身份认证既可以在接入层进行,也可以在汇聚层进行。
由于接入层面向终端用户,所以MAC地址过滤功能在一般园区网络设计中都属于接入层。
2022下半年(下午)《网络工程师》案例分析真题2022下半年(下午)《网络工程师》案例分析真题问答题(共4题,共4分)1.某校园宿舍WLAN网络拓扑结构如图1-1所示,数据规划如表1-1内容所示。
该网络采用敏捷分布式组网在每个宿舍部署一个AP,AP 连接到中心AP,所有AP和中心AP统一由AC进行集中管理,为每个宿舍提供高质量的WLAN网络覆盖。
【问题1】(10分)补充命令片段的配置。
1.Router 的配置文件[Huawei] sysname Router[Router] vlan batch(1)[Router] interface gigabitethernet 1/0/0[Router GigabitEthernet 1/0/0] port link-type trunk[Router GigabitEthernet 1/0/0] port trunk allow-pass vlan 101 [Router GigabitEthernet 1/0/0] quit[Router] interface vlanif 101[Router-Vlanifl01]ip address (2)[Router-Vlanifl01]quit2.AC的配置文件#配置AC和其他网络设备互通[HUAWEI]sysname (3)[AC] vlan batch 100 101[AC] interface gigabitethernet 0/0/1[AC-GigabitEthernet0/0/1] port link -type trunk[AC-GigabitEthernet0/0/1] port trunk pvid vlan 100[AC-GigabitEthernet0/0/1] port trunk allow-pass vlan 100 [AC-GigabitEthernet0/0/1] port-isolate(4) //实现端口隔离[AC-GigabitEthernet0/0/1] quit[AC] interface gigabitethernet 0/0/2[AC-GigabitEthernet0/0/2] port link-type trunk[AC-GigabitEthernet0/0/2] port trunk allow-pass vlan 101 [AC-GigabitEthernet0/0/2] quit#配置中心AP和AP上线[AC] wlan[AC-wlan-view] ap-group name ap-groupl[AC-wlan-ap-group-ap-group1] quit[AC-wlan-view] regulatory-domain-profile name default [AC-wlan-regulate-domain-default] country-code (5) [AC-wlan-regulate domain-default] quit[AC-wlan-view]ap-group name ap-group1[AC-wlan-ap-group-ap-group1] regulatory-domain-profile(6) Warning: Modifying the country code will clear channel, power and antenna gain configOf the config send reset the AP Continue?[Y/N]:y[AC-wlan-ap-group-ap-group1]quit[AC-wlan-view]quit[AC]capwap source interface(7)[AC] wlan[AC-wlan-view] ap auth mode mac-auth[AC-wlan-view] ap-id 0 ap-mac 68a8-2845-62fd//中心AP的MAC地址[AC-wlan-ap-0] ap-name central APWarning: This operation may cause AP reset Continue?[Y/N]:y[AC-wlan-ap-0] ap-group ap-group1Warning: This operation may cause AP reset.If the country code changes,it will clear channel,power and antenna gain configuration s of the radio,Whether to continue?[Y/N]:y[AC- wlan-ap-0] quit其他相同配置略去#配置WLAN业务参数[AC-wlan-view] security-profile name wlan-net[AC-wlan-sec-prof-wlan-net] security wpa-wpa2 psk pass-phrase(8) aes[AC-wlan-sec-prof-wlan-net] quit[AC-wlan-view] ssid-profile name wlan-net[AC-wlan-ssid-prof-wlan-net] ssid(9)[AC-wlan-ssid-prof-wlan-net] quit[AC-wlan-view] vap-profile name wlan-net[AC-wlan-vap-prof-wlan-net] forward-mode tunnel[AC-wlan-vap-prof-wlan-net] service-vlan vlan-id(10)[AC-wlan-vap-prof-wlan-net] security-profile wlan-net[AC-wlan-vap-prof-wlan-net] ssid-profile wlan-net[AC-wlan-vap-prof-wlan-net] quit[AC-wlan-view] ap-group name ap-group1[AC-wlan-ap-group-ap-groupl] vap-profile wlan-net wlan 1 radio 0[AC-wlan-ap-group-ap-group1] vap-profile wlan-net wlan 1 radio 1 [AC-wlan-ap-group-ap-group1] quit【问题2】(6分)上述网络配置命令中,AP的认证方式是(11)方式,通过配置(12)配置。
2022年上半年网络工程师下午试卷(解析)--网络工程师试题及答案002全国计算机技术与软件专业技术资格(水平)考试(考试时间14:00~16:30共150分钟)请按下述要求正确填写答题纸1.在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答题纸的指定位置填写准考证号、出生年月日和姓名。
3.答题纸上除填写上述内容外,只能填写解答。
4.本试卷的五道试题都是必答题,每道试题均为15分,满分75分。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答题纸的对应栏内。
例题因为正确的解答是“5月29日”,故在答题纸的对应栏内写上“5”和“29”(参看下表)。
例题(1)(2)解答栏529试题一(15分)阅读以下说明,回答问题1~6,将解答填入答题纸对应的解答栏内。
[说明]某公司已有一个100用户的有线局域网。
由于业务的发展,现有的网络不能满足需求,需要增加40个用户的网络连接,并在公司客户接待室连接网络以满足合作伙伴实时咨询的需求。
现结合公司的实际情况组建无线局域网,具体拓扑如图1-1所示。
[问题1](3分)目前无线局域网主要有哪两大标准体系简述各自特点。
【试题分析】无线局域网有两个主要标准:IEEE802.11和HIPERLAN (HighPerformaceRadioLocalAreaNetwork)。
IEEE802.11只规定了开放式系统互联参考模型(OSI/RM)的物理层和MAC(介质访问控制)层,它的主要特点如下:支持较高的数据速率(1-11Mb/);支持有中心和无中心两种拓扑结构;支持多优先级;支持时间受限业务和数据业务;具有节能管理和安全认证;可采用无线电或红外线传输介质;可采用直扩或跳频两种扩频技术在世界范围的ISM频段使用。
无线的接入协议采用CSMA/CA(带有避免冲突的载波监听多路访问);为了避免碰撞或其他原因造成的传输失败,采用ACK(确认)应答机制;为了支持多优先引入多个不同的帧间隔;为了支持实时业务又引入超帧结构。
网络工程师考试试题(含答案)一、单项选择题1.有4个子网:10.1.201.0/24、10.1.203.0/24、10.1.207.0/24和10.1.199.0/24,经路由汇聚后得到的网络地址是()。
A.10.1.192.0/20B.10.1.192.0/21C.10.1.200.0/21D.10.1.224.0/20【解析】前两个字节和最后一个字节不做比较了,只比较第三个字节。
201→11001001203→11001011207→11001111199→11000111显然,这四个数字只有前四位是完全相同的,因此汇聚后的网络的第三个字节应该是11000000→192。
汇聚后的网络的掩码中1的数量应该有8+8+4=20。
因此答案是10.1.192.0/20。
【正确答案】A2.关于自治系统(),以下说法错误的是()。
A.AS是由某一管理部门统一控制的一组网络B.AS的标识是唯一的16位编号C.在AS内部采用相同的路由技术,实现统一的路由策略D.如果一个网络要从Internet获取路由信息,可以使用自定义的AS编号【解析】Internet的自治系统号是由各级互联网管理中心进行分配的,不能由网络管理者自行定义。
【正确答案】D3.()能够显示路由器配置了哪种路由协议。
A.R1(config)#showiprouteB.R1>showiprouteC.R1>showipprotocolD.R1(config-if)#showipprotocol【解析】IOS中,在用户模式下运行showipprotocol即可显示路由协议的情况。
【正确答案】C4.“TCPSYNFlooding”建立大量处于半连接状态的TCP连接,其攻击目标是网络的()。
A.保密性B.完整性C.真实性D.可用性【正确答案】D5.设置计算机的无线网卡,使该计算机与实验室的无线访问点LabAP之间的通信能够受密码保护,指定密钥为2350AD9FE0,则下图中应设置()。
2022 上半年网络工程师下午案例分析真题与答案文字完整版(附后)1、试题一(20 分)阅读以下说明,回答问题 1 至问题 4,将解答填入答题纸对应的解答栏内。
【说明】某分支机构网络拓扑图如 1-1 所示,该网络通过 BGP 接收总部网络路由,设备 1 与设备 2 作为该网络的网关设备,且运行 VRRP(虚拟网络冗余协议),与出口设备运行 OSPF。
该网络规划两个网段10.11.229,0/24 和10.11.230.0/24,其中 10.11.229.0 网段只能访问总部网络。
10.11.230.0 网段只能访问互联网。
【问题 1】(4 分)分支机构有营销部、市场部、生产部、人事部四个部门,每个部门需要访问互联网主机数量如表所示,现计划对网段 10.11.230.0/24 进行子网划分,为以上四个部分规划 IP 地址,请补充表中的空(1)-(4)。
【问题 2】(8 分)在该网络中为避免环路,应该在交换机上配置(5),生成 BGP 路由有 network 与 import 两种方式,以下描述正确的是(6)(7)(8)。
空(6)-(8)备选答案:work 方式逐条精确匹配路由work 方式优先级高C.Import 方式按协议类型引入路由D.Import 方式逐条精确匹配路由work 方式按协议类型引入路由F.Import 方式优先级高【问题 3】(4 分)若设备 1 处于活动状态(Master),设备 2 的状态在哪条链路出现故障时会发生改变?请说明状态改变的原因。
【问题 4】(4 分) 如果路由器与总部网络的线路中断,在保证数据安全的前提下,分支机构可以在客户端采用什么方式访问总部网络?在防火墙上采用什么方式访问总部网络?2、试题二(20 分)阅读以下说明,回答问题 1 至问题 4,将解答填入答题纸对应的解答栏内。
【说明】如图,为某公司的网络拓扑图。
【问题 1】(6 分) 某日,网站管理员李工报告网站访问慢,他查看了互联网接入区防火墙的日志。
网络工程师模拟题及答案解析第六套●试题一请回答以下有关组网的问题1~4,并把解答填入答题纸的对应栏中。
【说明】设有A、B、C、D 4台主机都处在同一个物理网络中,A主机的IP地址是192.155.12.112,B主机的IP地址是192.155.12.120,C主机的IP地址是192.155.12.176,D主机的IP地址是192.155.12.222。
共同的子网掩码是255.255.255.224。
[问题1]A、B、C、D 4台主机之间哪些可以直接通信?哪些需要通过设置网关(或路由器)才能通信?请画出网络连接示意图,并注明各个主机的子网地址和主机地址。
[问题2]若要加入第5台主机E,使它能与D主机直接通信,其IP地址的设定范围应是多少?[问题3]不改变A主机的物理位置,将其IP地址改为192.155.12.168,试问它的直接广播地址和本地广播地址各是多少?若使用本地广播地址发送信息,请问哪些主机能够收到?[问题4]若要使主机A、B、C、D 4台主机在这个网上都能直接相互通信,可采取什么办法?●试题一[问题1]【答案】•A、B两台主机之间可以直接通信。
•A、B与C之间通过路由器方能通信。
•A、B与D之间通过路由器方能通信。
•C与D之间通过路由器方能通信。
示意图如图8所示。
图8网络连接示意图[问题2]【答案】IP地址的范围是192.155.12.193至192.155.12.221。
[问题3]【答案】•直接广播地址是192.155.12.191。
•本地广播地址是255.255.255.255。
•若使用本地广播地址255.255.255.255发送信息,B主机可以接收。
[问题4]将子网掩码改为255.255.255.0(即C类地址的默认值)。
●试题二阅读以下说明,回答问题1、问题2、问题3。
[说明]随着网络应用的日益广泛,接入网络和边缘网络的需求也更加复杂多样,企业为了开展电子商务,必须实现与Internet的互联,路由器是实现这一互联网的关键设备,路由器可以位企业提供越来越多的智能化服务,包括安全性、可用性和服务质量(QoS)等。
网络工程师考试试题(含答案)一、单项选择题1.关于OSPF协议,下列说法错误的是()。
A.OSPF的每个区域()运行路由选择算法的一个实例B.OSPF路由器向各个活动端口组播Hello分组来发现邻居路由器C.Hello协议还用来选择指定路由器,每个区域选出一个指定路由器D.OSPF协议默认的路由更新周期为30秒【解析】OSPF使用Hello数据报发现邻居并建立邻接。
Hello数据报以组播形式每隔一定时间()发送一次。
在不同网络中,HelloInterval的时间也不同。
在X.25网中,HelloInterval 的值为30秒;在局域网中,HelloInterval的值为10秒。
【正确答案】D2.TCP段头的最小长度是()字节。
A.16B.20C.24D.32【解析】TCP数据段为两部分,前面是头标(),后面是数据。
TCP头标的前20个字节格式是固定的,后面是可能的选项。
因此TCP头标的最小长度是20个字节。
【正确答案】B3.在以太网协议中使用1-坚持型监听算法的特点是()。
A.能及时抢占信道,但增加了冲突的概率B.能即使抢占信道,并减少了冲突的概率C.不能及时抢占信道,并增加了冲突的概率D.不能及时抢占信道,但减少了冲突的概率【解析】1-坚持CSMA的做法是:当一个站点要发送数据帧时,它就监听媒体,判断当前时刻是否有其他站点正在传输数据。
如果媒体忙的话,该站等待直至媒体空闲。
一旦该站检测到媒体空闲,它就立即发送数据帧。
如果产生冲突,则等待一个随机时间再监听。
之所以叫“1-坚持”,是因为当一个站点发现媒体空闲的时候,它传输数据帧的概率是1。
1-坚持CSMA 的优点是:只要媒体空闲,站点就立即发送;它的缺点在于:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
【正确答案】A4.在千兆以太网物理层标准中,采用长波()激光信号源的是()。
A.1000BASE-SXB.1000BASE-LXC.1000BASE-CXD.1000BASE-T【解析】即使记不得编号也没关系。
网络工程师模拟试题1. 简述OSI七层模型各层的功能和作用。
答:OSI七层模型是一种协议参考模型,用于规定计算机网络体系结构的设计和开发。
它将网络通信过程划分为七个层次,每层都有其特定的功能和作用。
- 物理层:主要负责传输数据比特流,将数据从发送方传输到接收方,如网线、无线信号等传输媒介。
- 数据链路层:负责数据包的传输和接收,错误检测和纠正,确保数据的可靠传输,如网卡地址、数据帧等。
- 网络层:通过IP地址和路由器实现数据包的传输,负责数据包的寻址和路由选择,实现不同网络之间的通信。
- 传输层:提供端到端的可靠数据传输,确保数据包按顺序到达目的地,如TCP和UDP协议。
- 会话层:建立、管理和终止会话,确保数据流的正确传输,如会话控制和同步。
- 表示层:处理数据的编码、加密和压缩,确保数据格式的统一和可识别。
- 应用层:为用户提供网络服务,如HTTP、FTP、SMTP等,完成各种应用程序之间的数据传输。
2. 什么是IP地址?IP地址的分类及其特点是什么?答:IP地址是互联网协议(IP)通信的标识符,用于唯一标识一个网络设备。
按照IP地址的分类,IP地址分为A类、B类、C类、D类和E类。
- A类地址: 0.0.0.0到127.255.255.255,用于大型企业或组织,可分配2^24-2台设备使用。
- B类地址: 128.0.0.0到191.255.255.255,用于中型组织或网络,可分配2^16-2台设备使用。
- C类地址: 192.0.0.0到223.255.255.255,用于小型组织或网络,可分配2^8-2台设备使用。
- D类地址: 224.0.0.0到239.255.255.255,用于多点广播地址。
- E类地址: 240.0.0.0到255.255.255.255,为未分配地址。
3. 什么是子网掩码?子网掩码的作用是什么?如何计算子网掩码?答:子网掩码是用来划分网络地址和主机地址的二进制数据结构,与IP地址配合使用来确定网络中的主机数量和子网数量。
2021年5月软考网络工程师下午考试真题与参考答案删除明显有问题的段落)问题1】(6分)根据图2-1,A区接入交换机应该属于(1)层,B区接入交换机应该属于(2)层,C区接入交换机应该属于(3)层。
问题2】(6分)故障一的可能原因有(4)和(5);解决故障一的方法是(6)。
问题3】(8分)故障二的可能原因有(7)和(8);解决故障二的方法是(9)和(10)。
参考答案:试题二(20分)问题1】(6分)1)接入层2)汇聚层3)核心层问题2】(6分)4)A区接入交换机故障5)中心机房核心交换机故障6)检查A区接入交换机与中心机房核心交换机之间的物理连接是否正常,检查端口配置是否正确,检查链路状态是否正常。
问题3】(8分)7)中心机房核心交换机故障8)A区接入交换机故障9)更换中心机房核心交换机10)更换A区接入交换机某天,网络管理员小王接到大楼用户上网故障报告。
B区用户XXX的电脑网络连接显示正常,但是无法正常打开网页,即时聊天软件也不能正常登录。
问题1:针对故障一,网络管理员使用光时域反射计对光缆进行检查,发现光衰非常大,超出正常范围,初步判断为光缆故障。
使用光纤熔接机熔接断裂光纤处理较为合理。
问题2:针对故障二,XXX在XXX的电脑上执行tracert命令显示到达ISP运营商网关的路径,结果显示上网行为管理系统E0接口地址以后均为“*”;更换该电脑的IP地址后,网络正常。
由此判断,该故障产生的原因可能是上网行为管理系统禁止该电脑IP访问互联网。
问题3:为保障数据安全,在数据中心本地和异地定时进行数据备份。
其中本地备份磁盘陈列要求至少坏2块磁盘而不丢失数据(不计算热备盘),应采用RAID 6磁盘冗余方式;异地备份使用互联网传输数据,应采用搭建VPN隧道进行传输的措施保障数据传输安全;在有限互联网带宽情况下,应采用压缩备份数据的措施提高异地备份速度。
D。
本地出口部署入侵防御系统在本地出口部署入侵防御系统可以有效地防止网络攻击和恶意软件的入侵。
网络工程师模拟试题6及答案(下午题)●试题一单位分得合法IP地址202.112.68.40 掩码为255.255.255.248,其中,路由器的外口和ISP之间占据了2个。
[问题1]若使用202.112.68.41和202.112.68.41,掩码为255.255.255.252,则可供使用的合法IP还有多少哪些?请写出。
[问题2]使用内部IP进行地址转换,若用一台主机连接内外两个网络,请说出2中不同的网络接法;并进行比较?[问题3]Internet上保留了哪些内部IP可以供使用?●试题一【答案】[问题1]还可用的有202.112.68.44/29, 202.112.68.45/29 ,202.112.68.46/29[问题2]2种网络接法:(1)主机接一块网卡绑定两个不同子网的地址,运行代理软件,内部网络将网关设置指向该主机。
(2) 主机插2块网卡,分别连接内外网,主机起到网关和地址转换作用。
两种接法比较:(1)中方案若内网盗用主机合法IP可以绕过主机(2)不能绕过主机。
[问题3]可以使用10.0.0.0 或172.16至172.31 或192.168.0 至192.168.255●试题二请阅读以下说明和Socket程序,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。
一般发起通信请求的应用程序称为客户软件,该应用程序通过与服务器进程建立连接,发送请求,然后等待服务器返回所请求的内容。
服务器软件一般是指等待接收并处理客户机请求的应用程序,通常由系统执行,等待客户机请求,并且在接收到请求之后,根据请求的内容,向客户机返回合适的内容。
本题中的程序较为简单,客户机接收用户在键盘上输入的文字内容,服务器将客户机发送来的文字内容直接返回给客户机,在通信过程中服务器方和客户机方都遵守的通信协议如下:由客户机首先发送请求,该请求由首部和内容两大部分组成,两个部分各占一行文字,通过行结束符"\n"隔离。
首部只有一个Length域,用于指定请求的内容部分的长度,首部的结构为:"关键词Length"+""+数值+"\n"。
内容部分为一行文字,其长度必须与Length域的数值相符例如,客户机的请求为"Length 14\nHello,my baby!",服务器接收请求处理后返回文字"Hello,my baby!"。
【Socket程序】服务器主程序部分:#include<stdio.h>……//引用头文件部分略>#define SERVER_PORT 8080//服务器监听端口号为8080#define BACKLOG 5/连接请求队列长度int main(int argc,char * argv[]){int listenfd,connfd//监听套接字、连接套接字描述符struct sockaddr_in servaddr;//服务器监听地址listenfd= (1) ;//创建用于监听的套接字if(listenfd<0){fprintf(stderr,"创建套接字错误!")exit (1) ;}//套接字创建失败时打印错误信息bzero(&servaddr.sizeof(servadd));//将地址结构置空servaddr.sin_family=AF_INET;//设置地址结构遵循TCP/IP协议servaddr.sin_addrs_addr=htonl.(2) ;//设置监听的IP地址为任意合法地址,并将该地址转换为网络字节顺序servaddr.sin_port= (3) ;//设置监听的端口,并转化为网络字节顺序if(bind (4) <0){fprintf(stderr,"绑定套接字与地址!");exit (1) ;}//将监听地址与用于监听的套接字绑定,绑定失败时打印错误信息if(listen(listedfd,BACKLOG)<0){fprintf(stderr,转换套接字为监听套接字!");exit (1) ;}//将用于监听的套接字由普通套接字转化为监听套接字for(;;){connfd= (5) ;//从监听套接字的连接队列中接收已经完成的连接,并创建新的连接套接字if(connfd<0){fprintf(stderr,"接收连接失败!");exit (1) ;}//接收失败打印错误信息serv_respon(connfd);//运行服务器的处理函数close(connfd);//关闭连接套接字}dose(listenfd);//关闭监听套接字}服务器通信部分:#include<stdio.h>< ……//引用头文件部分略>void serv_respon(int sockfd){int nbytes;char bur[1024];for(;;){nbytes=read_requ(sockfd,bur,1024);//读出客户机发出的请求,并分析其中的协议结构,获知请求的内容部分的长度,并将内容复制到缓冲区buf 中,if( (6) )return;//如客户机结束发送就退出else if(bytes<0){fprintf(siderr,"读错误情息:%s\n",strerror(errno));return;} //读请求错误打印错误信息if(write-all(sockfd,buf,nbytes)<0)//将请求中的内容部分反向发送回客户机fprintf(siderr,"写错误信息:%s\n",strerror(errno));}}int read_requ(int sockfd,char*buf int size){char inbuf[256];int n;int i;i=read_line(sockfd,inbuf,256);//从套接字接收缓冲区中读出一行数据,该数据为客户请求的首部if(1<O)return(i);else if(i==0)return(0);if(stmcmp(inbuf,″″,6)==0)scanf( (7) ,″%d″,&n);//从缓冲区buf中读出长度信息else{sprintf(bur,″″,14);return (14) ;}//取出首部Length域中的数值,该数值为内容部分的长度return(read-all(sockfd,bur,n));//从接收缓冲区中读出请求的内容部分}int get-char(int fd,char*ch){static int offset=0;static int size=0;static char buff[1024];//声明静态变量,在get_char多次被调用期间,该变量的内存不释放for(;size<=0 | | (8) ;){size=read(fd,bur,1024);//一次从套接字缓冲区中读出一个数据块if(size<0){if(errno==EINTR){size=0;contine;//EINTR表示本次读操作没有成功,但可以继续使用该套接字读出数i }elsereturn(-1);}offset=0;//读出数据后,将偏址置为0*ch=buf[offset ++];//将当前的字符取出,并将偏址移向下一字符return (1) ;}int read _ line(int fd,char*buf,int msxlen){int i, n;char ch;for(i=0;i< (9) ){n=get_char(fd,&ch);//取出一个字符if(n==1){buff[i++]=ch;//将字符加入字符串中if( (10) )break;}else if(n<)return(-1);else break;}buf[i]=`\0`;return(i);}//函数read_line的作用是读出请求的首部,其处理的方法是每次调用get_char函数,取出一个字符,检查该字符是否是回车符`\n`,如果是回车符,就返回请求的首部//get_char的处理方式较为特殊,并不是每次调用read函数读一个字符,而是一次从缓冲区中读一块内容,再一次一个字符提交给函数read_line,如果提交完了就再读一块,这样就可以提高读缓冲区的效率。
另外,由于客户机是分两次调用writ_all函数将请求的首部和内容发送给服务器,因此get_char不会取出请求内容部分的字符部分SOCKET数据结构与函数:1.地址结构。
sockaddr-in:sockaddr_in类型的结构定义,sockaddr_in是通用套接字结构sockaddr在TCP/IP协议下的结构重定义,为TCP /IP套接字地址结构。
Struct sockaddr_in{short int sin_family;//地址类型AF_XXX,其中AF_INET为TCP/IP专用unsigned short int sin _port;//端口号struct in_addr sin_addr;//Internet地址//端口号以及Internet地址使用的是网络字节顺序,需要通过函数htons转换}struct_inaddr{_u32 s_addr;//类型为unsignel long}hostent:hostent类型的结构定义struct hostnet{char*h_name;//主机的正式名称char**h_aliases;//别名列表nit h_addrtvPe;//主机地址类型:AF_XXXint h_length;//主机地址长度:4字节(32位)char**h_addr_list;//主机IP地址列表}#define h_addr h_addr_list[0]2.基本函数。
int socket(int domain,int type,int protocol);函数socket创建一个套接字描述符,如果失败则返回-1。
domain为地址类型,type为套接字类型,本题中为SOCK_STREAM;protocol指定协议,本题中为0。
int connect(int sockfd,struct sockaddr*servaddr,int addrlen);函数connect与服务器建立一个连接,成功返回0,失败返回-1。