网络程序设计期末复习题

网络程序设计期末复习题
网络程序设计期末复习题

网络程序设计期末复习题

第一章网络基础

(1)计算机网络程序设计是利用网络应用编程接口编写网络应用程序,实现网络应用进程间的信息交互功能。

(2)网络编程基于网络协议,网络编程接口访问网络协议提供的服务。

(3)简述OSI七层协议的主要功能:

(4)网络互联的目的是提供一个无缝的通信系统。为此,必须用互联网协议屏蔽物理网络的具体细节,并提供一个虚拟网络的功能。

(5)每个IP地址被分割成前缀和后缀两部分。前缀用于确定计算机从属的物理网络,后缀则用于确定网络上一台单独的计算机。

(6)IP中主机地址为0的地址表示网络地址。

(7)网络号后跟一个所有位全是1的后缀,就是直接广播地址。

(8)地址解析(Address Resolution)就是将计算机中的协议地址翻译成物理地址(或称MAC地址,即媒体映射地址)。

(9)一个系统的全域名由主机名、域名和扩展名三部分组成,各部分间使用“.”分隔,例如https://www.360docs.net/doc/e713416890.html,。(10)在TCP/IP应用中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。

(11)以太网数据帧的长度必须在46~1518字节之间。

(12)TCP和UDP都用一个16位的端口号来表示不同的应用程序。

(13)TCP和UDP把源端口号和目的端口号分别存入报文首部中。

(14)网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入16 bit 的帧类型域以指明生成数据的网络层协议。

(15)当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。

(16)TCP和UDP采用端口号来识别应用程序。

(17)任何TCP/IP实现所提供的服务都使用通用端口号1~1023。

(18)IEEE 802.3定义了一种具有七个字段的帧(MAC):前导符、起始帧分界符、目标地址、源地址、PDU的长度/类型、数据以及CRC。

(19) IPv4中包含至少12个不同字段,且在没有选项时长度为20个字节,但在包含选项时可达60个字节。

(20)解释IP数据报格式中的标志(FLG)的含义:包括3个1位标志,标识报文是否允许被分段和是否

使用了这些域。第一位保留并设为0;第二位标识报文能否被分段,其中0表示报文可以被分段,1表示报文不能被分段;第三位只有在第二位为0时才有意义,这一位标识此报文是否是这一系列分段的最后一个,或者接收应用程序是否还希望有更多的段,0指示报文是最后一个。

(21)分段偏移量(Fragment Offset):指定分段在整个数据报中的位置。接收主机同时使用标志位和分段偏移,以重组被分段的数据报。这个值以64位为单位递增。

(22)生命周期(TTL,Time To Live):代表数据报在被丢弃前能够穿越的最大主机跳数。

(23)TTL的初始值由源主机设置,其理论最大值为255,每经过一个处理节点减1。

(24)IP数据报格式中设置头校验和(Header Checksum)的目的是保证报头的正确性,目的机、网络中的每个网关都要重新计算报头的校验和,如果计算出的校验和与报文所含的校验和不同,则丢弃该报文。(25)IP数据报格式中设置填充区(Padding)的目的是为了保证IP头长度是32位的整数倍,要填充额外的0。

(26)ICMP作为IP协议的附属协议,用来与其他主机或路由器交换错误报文和其他重要信息。(27)IP层协议的另一个附属协议是IGMP(Internet组管理协议),它用来把一个UDP数据报多播或组播到多个主机。

(28)TCP使用IP作为网络层协议。TCP的全称是Transmission Control Protocol,即传输控制协议。(29)IP首部中的源端口字段和源IP地址的作用是标识发送报文的计算机及应用程序。

(30)IP首部中的目标端口字段和目标IP地址的作用是标识接收报文的计算机及应用程序。

(31)如果将字节流看作在两个应用程序间的单向流动,则TCP用序号字段对每个字节进行计数。(32)在动态路由网络中,报文很可能使用不同的路由,因此,报文可能乱序。利用序号字段可以纠正传输导致的乱序,从而重组分段的报文。

(33)确认序号应当是上次已成功收到的数据字节序号加1。只有ACK标志置1时此字段才有效。(34)发送ACK无需任何代价,因此,一旦连接建立,该字段总是被设置,ACK标志也总是置1 。(35)窗口(Window)是16位字段,它表明接收端声明可以接收的TCP数据段的大小,最大为65 535字节。

(36)校验和对整个TCP报文段进行,包括TCP首部和TCP数据。如果收到的内容没有被改变过,双方的计算结果应完全一样,保证了数据的有效性。

(37)校验和(Checksum)是16位的字段,它是一个强制性的字段,由发送端计算存储,由接收端进行验证。

(38)可靠传输服务软件所应具有的特征如下:(1) 面向数据流:数据流(stream)就是两个应用程序间传输的数据。(2) 电路连接:包括连接的建立、通信的开始及连接的结束都要求所建立的连接是可靠的,连接的结束要完美(在连接终止前传送的所有数据均为可靠的)。(3) 带缓冲的传送。(4) 无结构的数据流,即不考虑数据内容。(5) 全双工连接:包含两个独立且方向相反的连接。

(39)TCP提供一个可靠连接的方式是通过三次握手(Three-way Handshake)来完成的。

(40)建立一个TCP连接需要三次握手,而正常终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)特性造成的。

(41)UDP协议只负责接收和传送由上层协议传递的消息,它本身不做任何检测、修改与应答,上层协议需要自己处理这些事务。

(42)UDP的报头格式较简单,主要是地址信息、包的长度和校验信息。与此对应,TCP包的头信息有10多个域。

(43)理论上,IP数据报的最大长度为65 535字节,这是由IP首部16位字段所限制的。去除20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据的最大长度为65 507字节。但大多数实现所提供的长度比这个最大值小,这主要是因为存在两个限制因素:一个是因为应用程序可能会受到其程序接口的限制,Socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。现在的大部分系统都默认提供了可读/写大于8192字节的UDP数据报。另一个限制来自于TCP/IP的内核,

不同的系统可能存在一些实现特性的差异,使IP数据报长度小于65 535字节。

(44)ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,逆向地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

(45)源抑制是一个流控制信息,由接收方向源主机发送该信息来请求源主机停止发送数据。当接收主机在其缓冲区快满时发送该信息。

(46)路径重定向是由网关向请求其提供服务的主机发送,用于通知该主机在网络中还有其他距离目的主机更近的网关。

(47)为了防止由于ICMP差错报文响应所引发的广播风暴,协议规定当接收端收到下列报文时不会产生ICMP差错报文:

(1) ICMP差错报文(但ICMP查询报文可能会产生ICMP差错报文)。

(2) 目的地址是广播地址或多播地址的IP数据报。

(3) 作为链路层广播的数据报。

(4) 不是IP数据报第一个分片的数据报。

(5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。

(48)网络通信常常是在多个平台之间进行的,因此网络应用程序必须考虑不同平台之间的异构性,这些差异主要表现在哪些方面?(1)字节顺序。不同的平台以不同的方式存放一个二进制数。最常见的有两种格式:大数在前(big-endian)的字节顺序和小数在前(little-endian)的字节顺序。大数在前的字节顺序是指将一个多字节数的高序字节存储在内存的起始地址;而小数在前的字节顺序则相反,将低序字节存储在内存的起始地址。因此,作为网络编程人员,必须清楚各种字节顺序间的区别,并采用相应的措施来解决因这种差别所带来的问题。(2)字的长度。不同的实现对于相同的数据类型可能有不同的表示长度。例如32位和64位操作系统中,类型long int的长度是不一样的。(3)字节定界问题。不同的平台上为结构体(struct)或共同体(union)打包的方式也是不同的,这取决于所有数据类型的位数及机器的定界限制。(4)另一种解决该问题的方法是将需要发送的信息的结构在发送前变换成一种统一的格式(转换成一个字符数组),到达接收方后再执行相反的过程。对于数据结构中有比特变量的情况,处理起来更加复杂,因此,在实际网络编程中尽量不要使用比特变量。在很多网络协议的设计中,常常需要填充一些无用的字节以满足四字节定界,从而简化协议的实现。

(49)网络编程应考虑的问题有哪些?(1)并发环境下的网络编程。单进程应用与多进程或多线程应用程序的编程有着很大的区别。在多进程或多线程应用程序中,涉及到资源共享、进程或线程间的同步,因而要复杂得多。在多进程或多线程应用中,使用的系统调用或函数必须是可重入的。不同系统中可重入的系统调用或系统函数是不同的,一般都会有详细的说明。对于那些不可重入的调用或函数,系统如果不提供多线程安全的版本,则应用编程人员需要避免使用或自己编写相应的函数;(2)异构环境下的网络编程。字节顺序、字的长度、字节定界问题等。(3)阻塞与非阻塞通信。(4)服务类型的选择;(5)差错处理

第2章WINSOCK基础

(1)套接字(socket)是网络通信的基本构件,是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和与之相连的进程。

(2)Windows Sockets只支持一个通信区域:网际域(AF-INET),这个域被使用网际协议族通信的进程所使用。

(3)TCP/IP的socket提供三种类型的套接字:

* 流式套接字(SOCK_STREAM):提供一个面向连接的、可靠的数据传输服务,数据无差错、无重复地发送,且按发送顺序接收。内设流量控制,避免数据流超限;数据被看作是字节流,无长度限

制。文件传输协议(FTP)即使用流式套接字。* 数据报式套接字(SOCK_DGRAM):提供一个无连接服务。数据报以独立包形式被发送,不提供无错保证,数据可能丢失或重复,且接收顺序混乱。网络文件系统(NFS)使用数据报式套接字。* 原始式套接字(SOCK_RAW):该接口允许对较低层协议,如IP、ICMP 直接访问。常用于检验新的协议实现或访问现有服务中配置的新设备。

(4)TCP/IP协议提出可协议端口(protocol port,简称端口)的概念,用于标识通信的进程。

(5)在TCP/IP协议的实现中,端口操作类似一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件。

(6)类似于文件描述符,每个端口都拥有一个叫端口号(port number)的整数型标识符,用于区别不同的端口。

(7)由于TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。

(8)端口号的分配是个重要问题,有两种基本分配方式:全局分配和本地分配。

(9)网络中用一个三元组(协议,本地地址,本地端口号)可以在全局唯一标志一个进程,这个三元组叫半相关(half-association),它指定连接的每半部分。

(10)一个完整的网间通信需要用一个五元组(协议,本地地址,本地端口号,远地地址,远地端口号)来标识,这个五元组叫全相关(association),即两个协议相同的半相关才能组成一个合适的相关,或完全指定组成一连接。

(11)在字节流服务中,由于没有报文边界,用户进程在某一时刻可以读/写任意数量的字节。

(12)为保证传输正确或采用有流控制的协议,都要进行缓存。但对某些特殊的需求,如交互式应用程序,又会要求取消这种缓存。

(13)客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软/硬件资源、运算能力和信息不均等,需要共享,从而形成拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对称的情况。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。

(14)客户机/服务器模式在操作过程中采取主动请求方式:

(1) 服务器方启动,并根据请求提供相应的服务,其工作流程如下:* 打开一通信通道并告知本地主机,它愿意在某公认地址(如FTP:21)上接收客户请求。* 等待客户请求到达该端口。* 接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork、exec)。新进程处理此客户请求,并不需要对其他请求作出应答。* 返回第二步,等待另一客户请求。* 关闭服务器。

(2) 客户机方工作流程如下:* 打开一通信通道,并连接到服务器所在地的主机特定端口。* 向服务器发送服务请求报文,等待并接收应答,继续提出请求。* 请求结束后关闭通信通道并终止。从上面描述的过程可知:* 客户机与服务器进程的作用是非对称的,因此编码不同。* 服务进程一般是先于客户机请求而启动的,只要系统运行,该服务进程一直存在,直到正常终止或强迫终止。

(15)Windows Sockets由两部分组成:开发组件和运行组件。开发组件:Windows Sockets 实现文档、应用程序接口(API)引入库和一些头文件。运行组件:Windows Sockets应用程序接口的动态链接库(Winsock.dll)。

(16)Windows Sockets的异步选择函数提供了消息机制的网络事件选择,当使用它登记的网络事件发生时,Windows应用程序相应的窗口函数将收到一个消息,消息中指示了发生的网络事件以及与事件相关的一些信息。

(17)Windows Sockets提供了一个异步选择函数WSAAsyncSelect(),用它来注册应用程序感兴趣的网络事件,当这些事件发生时,应用程序相应的窗口函数将收到一个消息。

(18)异步请求函数允许应用程序用异步方式获得请求的信息,且在请求的服务完成时给应用程序

相应的窗口函数发送一个消息。

(19)Windows是非抢先的多任务环境,即若一个程序不主动放弃其控制权,别的程序就不能执行。

(20)在设计Windows Sockets程序时,尽管系统支持阻塞操作,但还是不提倡程序员使用该操作。

(21)Windows Sockets如何实现阻塞处理:Windows Sockets为了实现当一个应用程序的套接字调用处于阻塞时,能够放弃CPU让其他应用程序运行,它在调用处于阻塞时便进入一个叫“HOOK”的例程,此例程负责接收和分配Windows消息,这使得其他应用程序仍然能够接收到自己的消息并取得控制权。

(22)在Windows Sockets中,有一个默认的阻塞处理例程BlockingHook()可简单地获取并发送Windows消息。如果要对复杂的程序进行处理,Windows Sockets中还有WSASetBlockingHook()函数可供用户安装自己的阻塞处理例程;与该函数相对应的则是WSAUnhookBlockingHook(),它用于删除先前安装的任何阻塞处理例程,并重新安装默认的处理例程。注意,设计自己的阻塞处理例程时,除了函数WSACancelBlockingHook()之外,不能使用其他的WinSock API函数。在处理例程中调用WSACancelBlockingHook()函数将取消处于阻塞的操作并结束阻塞循环。

(23)Windows Sockets为了和多线程环境(如Windows NT)兼容,提供了两个出错处理函数WSAGetLastError()和WSASetLastError()来获取和设置当前线程的最近错误号。

(24)由于Windows Sockets的服务是以动态链接库Winsock.dll的形式实现的,因此必须先调用WSAStartup()函数对Windows Sockets DLL进行初始化,协商Windows Sockets版本支持,并分配必要的资源。在应用程序中完成了对Windows Sockets的使用之后,还应调用函数WSACleanup()终止对Windows Sockets DLL的使用,并释放资源,以备下一次使用。在这些函数中,实现Windows网络实时通信的关键是异步选择函数WSAAsyncSelect()的使用。

(25)WinSock的启动是通过调用WSAStartup函数,实现Windows Sockets DLL的初始化,协商WinSock的版本支持,并分配必要的资源。如果在调用WinSock函数之前,没有加载WinSock库,则返回SOCKET_ERROR错误,错误信息是WSANOTINITIALISED。

(26)请绘制数据报套接字编程时序图。

(27)请绘制流式套接字编程时序图。

服务器方客户机方

服务器方

流式套接字编程时序图

(28)Windows 套接字在两种模式下执行I/O 操作:阻塞和非阻塞。

(29)Winsock 提供了不同套接字I/O模型操作进行管理,常见的WinsockI/O模型有Select模型、WSAAsyncSelect模型、WSAEventSelect模型。

(30)Select函数中

int WSAAPI select(int nfds,

fd_set FAR *readfds,

fd_set FAR *writefds,

fd_set FAR *exceptfds,

const struct timeval FAR *timeout );

参数readfds指向要做读检测的套接字描述符集合的指针,调用者希望从中读取数据;参数writefds 指向要做写检测的套接字描述符集合的指针;参数exceptfds指向要检测是否出错的套接字描述符集合的指针;

(31)WinSock提供了4个宏对fd_set结构进行操作,分别是:* FD_CLR(s, *set):从集合set中删除描述字s。* FD_ISSET(s, *set):若s为集合中一员,则非零,否则为零。* FD_SET(s, *set):向集合添加描述字。* FD_ZERO(s, *set):将set初始化为空集NULL。

(32)WSAAsyncSelect模型是WinSock中另一个常用的异步I/O模型。利用这个模型可在一个套

接字上接收以Windows消息为基础的网络事件通知。

(33)若无错误发生,WSAEnumProtocols()返回协议的数目,否则返回INV ALID_SOCKET错误,应用程序可通过WSAGetLastError()来获取相应的错误代码。

(34)WinSock 2引入了重叠I/O的概念并且要求所有的传输协议提供者都支持这一功能。它的基本原理是让应用程序使用一个重叠的数据结构,一次投递一个或多个WinSock I/O请求,针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务。应用程序可通过ReadFile和WriteFile两个函数执行I/O操作。

(35)当应用程序使用setsockopt函数把接收缓冲区长度设置为0时,对可靠传输协议,数据直到应用程序提供了接收缓冲区后才被接收,而对不可靠传输协议,数据将会丢失。

(36)WinSock 2中QoS的使用模型如下:(1) 对基于连接的传输服务,应用程序可以很方便地在使用WSAConnect函数提出连接请求时规定它所要求的服务质量(QoS)。(2) 无连接的套接字也可以使用WSAConnect函数为一个指定的通信规定特定的QoS级别,WSAIoctl函数也可用来规定初始的QoS要求,或者用于今后的QoS协商。

(37)套接字具有很多套接字选项,这些选项代表套接字在不同需要下的行为,通过setsockopt函数和getsockopt函数可以灵活地设置和获取某个套接字的行为方式。

(38)调用setsockopt和getsockopt函数时,最常见的错误是试图获得一个套接字的信息,但那个套接字的基层协议却不具备某种指定的特性(或选项)。

第3章基本网络应用

(1)函数int gethostname(char *name, int namelen);参数name是一个指向将要存放主机名的缓冲区指针。namelen用于指定缓冲区的长度。该函数把本地主机名存入由name参数指定的缓冲区中,返回的主机名是一个以NULL结束的字符串。主机名的形式取决于WinSock实现,它可能是一个简单的主机名,或者是一个域名。然而,返回的名字必定可以在gethostbyname()和WSAAsyncGetHostByName()中使用。如果没有错误发生,gethostname()返回0;否则它返回SOCKET_ERROR。

(2)函数struct hostent *gethostbyname(const char *name);中name为指向主机名的指针,它一般由函数gethostname返回。函数返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针,该结构格式如下:

struct hostent

{

char FAR* h_name;

char FAR FAR** h_aliases;

short h_addrtype;

short h_length;

char FAR FAR** h_addr_list;

};

其中:字段h_name为正规的主机名;字段h_aliases是一个以空指针结尾的可选主机名队列;字段h_addrtype返回地址的类型,对WinSock这个域总是AF_INET;字段h_length为每个地址的长度(字节数),对应于AF_INET这个域应该为4;字段h_addr_list为以空指针结尾的主机地址的列表,返回的地址是以网络顺序排列的。

(3)函数GetAdaptersInfo可以获得本地计算机的网络信息,从而获得该计算机的网卡名、网卡驱动程序、IP地址、子网掩码、物理地址、是否启用了DHCP、是否启用了WINS等网络信息。注意该函数在头文件IpHlpApi.h中声明,库文件为IpHlpApi.lib。

(4)函数DWORD GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);其中:

参数pAdapterInfo指向IP_ADAPTER_INFO结构链表缓冲区的指针;

参数pOutBufLen指向一个ULONG变量的指针,该ULONG变量表示指向pAdapterInfo结构的大小。

参数中的IP_ADAPTER_INFO结构包含了本地计算机上一个特定网络适配卡的信息。

(5)针对指定的工作站上安装哪种协议和各种协议特性的返回问题,WinSock 2提供了一种解决方法。如果一个协议支持多种行为,则每类行为在系统中都有各自的目录条目。比如,如果在自己的系统中安装了TCP/IP,系统中就会有两个IP条目:一个条目针对TCP,是可靠的面向连接的,另一个针对IP,是不可靠且无连接的。

(6)要想获得系统中安装的网络协议的相关信息,可调用WSAENumProtocols函数,其原型为:int WSAENumProtocols(LPINT lpiProtocols, LPWSAPROTOCOL_INFO lpProtocolBuffer,

LPDWORD lpdwBufferLength);

其中:

参数lpiProtocols是一个以NULL结尾的协议标识号数组,该参数可选,如果lpiProtocols为NULL,则返回所有可用协议的信息,否则返回数组中所列的协议信息;

参数lpProtocolBuffer是一个用PROTOCOL_INFO结构填充的缓冲区,该结构用来存取和获得给定协议的完整信息;

参数lpdwBufferLength在输入时,用于保存传递给WSAENumProtocols()函数的lpProtocolBuffer 缓冲区长度;在输出时,存有获取所有请求信息需传递给WSAENumProtocols()函数的最小缓冲区长度。

若无错误发生,WSAENumProtocols函数返回协议的数目,否则,返回INV ALID_SOCKET错误,应用程序可通过WSAGetLastError()函数来获取相应的错误代码。

(7)通常需要两次调用WSAENumProtocols函数以获取特定的协议信息,第一次调用时指定lpProtocolBuffer为NULL,调用失败,返回WSAENOBUFS错误,但参数lpdwBufferLength包含了所有协议信息需要的缓冲区长度。分配了恰当的缓冲区长度后,便可利用这个缓冲区进行第二次调用,协议的信息将包含在WSAPROTOCOL_INFO结构中。这样就可以对该结构进行分析从而获得所需要的协议信息。

(8)应用程序在使用套接字前,首先必须拥有一个套接字,系统调用socket()向应用程序提供创建套接字的手段,其调用格式如下:

SOCKET PASCAL FAR socket(int af, int type,int protocol);

该调用要接收三个参数:af.type,protocol。参数af指定通信发生的区域,DOS和Windows 仅支持AF_INET,它是网际网区域,因此,地址族与协议族相同。参数type描述要建立的套接字的类型。参数protocol说明该套接字使用的特定协议.如果调用者不希望持别指定使用的协议,则置为o,使用默认的连接模式。根据这三个参数建立一个套接字,并将相应的资源分配给它,同时返回一个整型套接字号。因此,socket()系统调用实际上指定了相关五元组中的“协议”这一元。

(9)bind()将套接字地址(包括本地主机地址和本地端口地址)与所创建的套接字号联系起来.即将名字赋予套接字,以指定本地半相关。

(10)int PASCAL FAR bind(SOCKBT s,const struct sockaddr FAR *name,int namelen);

参数s是由socket()调用返回的并且末作连接的套接字描述符(套接字号)。参数name是赋给套接字s的本地地址(名字),其长度可变,结构随通信域的不同而不同。namelen表明了name的长度。

如果没有错误发生,bind()返回o;否则返回值SOCKETERROR。

(11)socket() bind() connect() listen() accept()这五个套接字系统调用,可以完成一个完全五元相关的建立。

(12)Windows Sockets的套接字函数包括sockets()bind()getpeername() getsockname()和closesocket()。它们主要完成创建、关闭套接字功能以及对套接字命名和名字获取。

网络连接函数,此类函数包括listen(),accept(),connect()和shutdown()。它们完成网络连接(如虚电路)的建立与关闭。此类函数中有部分可阻塞。

数据传输函数,此类函数包括send(),recv(),sendto()和recvfrom()。它们完成网络数据的发送与接收,全部是可以阻塞的函数。

字节定序函数,此类函数包括htonl(),htons(),ntohl()和ntohs()。它们完成主机和网络之间数据字节顺序的转换。

地址转换函数,此类函数包括inet_addr(),inet_ntoa(),它们完成网络字符串地址和Internet地址之间的转换。

套接字控制函数,此类函数包括getsockopt(),setsockopt(),ioctsocket()和select(),它们设置/获取套接字的选项,控制/检测套接字的工作状态。其中se1ect()函数在必要时可能阻塞。

(13)在非抢先windows环境,强烈推荐程序员使用非阻塞(异步)操作,也就是说,推荐使用windows Sockets提供的异步选择函数代替可能阻塞的selct()函数,并且用网络事件消息来驱动可能阻塞的网络连接函数(accept()和connect())和数据传输函数,这样设计的程序能更好地工作。

程序设计练习

1.编写一个简单的基于流式套接字的FTP程序,客户机可以向服务器传输简单的文本文件,给出主要实现代码。

2.使用UDP套接字完成如下服务器和客户机的编程工作:客户机发送一个整数,UDP循环服务器将这个整数加上10000,结果返回给客户机。

3.编写基于TCP的C/S程序,服务器和客户端程序的基本流程是怎样的?给出主要实现代码。

网络编程试卷(含答案)

大学期末考试试卷(A卷) 20 学年第1学期考试科目:网络编程 考试类型:(闭卷)考试时间:120 分钟 学号姓名年级专业 一.选择题(30分,每题3分) 1.以下哪个是TCP/IP模型?(B) A.应用层,表示层,网络层,物理层; B.应用层,传输层,网络层,链路层C.应用层,传输层,链路层,物理层 D.应用层,传输层,网络层,物理层 2.P2P的设计架构不包含以下哪一种?( C) A.集中式架构 B.完全分布式架构 C.点对点架构 D.混合型架构 3.HTTP请求方法不包括如下哪一种( B) A.Post B.Update C.Get D.Head 4.FTP的作用不包括(C) A.文件共享; B. 通过应用程序直接或间接使用远程主机; C.提供一致性的协议,避免用户在不同主机上有不相同的操作方式; D. 提供可靠及有效率的数据传输; 5.SMTP与POP3的端口分别是:( B) A.25,75 B. 25,110 C.21,75 D. 21,110 6.IP地址是192.168.100.2,子网掩码是255.255.255.0,则其网段的广播地址是(C)A.192.168.100.1 B.192.168.100.0 C.192.168.100.255 D.255.255.255.255 7.TCP的特点不包括如下哪一点(C) A.面向连接 B.全双工数据传送 C.传输速度快 D.面向字节流 8.关于线程哪一点是对的。(D)

A.任何一个C#程序都有一个默认的线程,该线程是后台线程; B. 每个进程都有一个线程池。线程池默认大小有35个线程; C.线程池中的线程都是前台线程; D. C#中常用的线程同步的语句是lock语句; 9.在Internet中用一个三元组可以在全局中唯一标识一个应用层进程,这不包括下列哪一种( A ) A.网络层协议 B.IP地址 C.端口号 D.传输层协议 10.TCP/IP协议簇中,哪一种是网络层协议( B ) A.TCP B.ARP C.SMTP D.TFTP 二.判断题(15分,每题1分,用T表示对,F表示错) 1.端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535 (F) 2.线程池中既有后台线程也有前台线程,某进程的所有前台线程都终止了,后台进程也自 然终止。(F) 3.在SMTP中,电子邮件由信封、首部和正文3部分组成。(T) 4.数字签名是私钥加密,公钥解密。(T) 5.ESMTP与SMTP的区别是发送邮件时要求用户身份验证。(T) 6.HTTP的流水线方式是指客户在收到前一个响应后才能发出下一个请求。(F) 7.HTTP(Hypertext Transfer Protocol),超文本传输协议,目前的版本是1.0 。(F) 8.NA T功能是只能用硬件来实现(F) 9.IP地址有A,B,C,D,E五类(F) 10.UDP不需要连接,速度比TCP快;(T) 11.UDP传输的数据无消息边界;(F) 12.Socket类比位于底层TcpClient类提供了更高层次的抽象,它们封装TCP套接字的创建, 不需要处理连接的细节。(F)

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计

山东建筑大学 课程设计成果报告 题目:基于Python的网络爬虫设计课程:计算机网络A 院(部):管理工程学院 专业:信息管理与信息系统 班级: 学生姓名: 学号: 指导教师: 完成日期:

目录 1 设计目的 0 2 设计任务内容 0 3 网络爬虫程序总体设计 0 4 网络爬虫程序详细设计 0 4.1 设计环境和目标分析 0 4.1.1 设计环境 0 4.1.2 目标分析 (1) 4.2 爬虫运行流程分析 (1) 4.3 控制模块详细设计 (2) 4.3 爬虫模块详细设计 (2) 4.3.1 URL管理器设计 (2) 4.3.2 网页下载器设计 (2) 4.3.3 网页解析器设计 (2) 4.4数据输出器详细设计 (3) 5 调试与测试 (3) 5.1 调试过程中遇到的问题 (3) 5.2测试数据及结果显示 (4) 6 课程设计心得与体会 (4) 7 参考文献 (5) 8 附录1 网络爬虫程序设计代码 (5) 9 附录2 网络爬虫爬取的数据文档 (8)

1 设计目的 本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《计算机网络》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1.巩固和加深学生对计算机网络基本知识的理解和掌握; 2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力; 3.提高学生进行技术总结和撰写说明书的能力。 2 设计任务内容 网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。 选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,界面适当美化。给出软件测试结果。 3 网络爬虫程序总体设计 在本爬虫程序中共有三个模块: 1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况 2、爬虫模块:包含三个小模块,URL管理器、网页下载器、网页解析器。 (1)URL管理器:对需要爬取的URL和已经爬取过的URL进行管理,可以从URL 管理器中取出一个待爬取的URL,传递给网页下载器。 (2)网页下载器:网页下载器将URL指定的网页下载下来,存储成一个字符串,传递给网页解析器。 (3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的数据,而且还可以解析出每一个网页指向其他网页的URL,这些URL被解析出来会补充进URL管理器 3、数据输出模块:存储爬取的数据 4 网络爬虫程序详细设计 4.1 设计环境和目标分析 4.1.1 设计环境

网络程序设计—ASP考试试题(A卷)答案[1]

《网络程序设计—ASP》考试试题1答案 一、单项选择题(本大题共15小题.每小题1分。共15分) 1.A 2. D 3. B 4. B 5. B 6. B 7. A 8.C 9.B 10.B 11.A 12.D 13.B 14.A 15.C 二、判断题(本大题10小题,每小题1.5分,共15分)。 16.ABCD 17.AD 18.AB 19. ABCD 20.CD 21. ABCD 22. BD 23. CD 24. ABCD 25. AB 三、程序填空题(本大题10小题,每空1.5分,共15分) 26. “11”、2、“11”、“11”27. ac 28. 3 29.2 30. 空(Empty)31. 空(Empty)32. "<p>" 33. &lt;p&gt; 34. 与intAge的值有关35.全部 四、名词解释(本大题5小题,每小题2分,共10分) 36.静态网页——所谓静态网页,就是说该网页文件里没有程序代码,只有HTML标记,这种网页的扩展名一般是.htm或.html。静态网页一经制成,内容就不会再变化,不管何时何人访问,显示的都是同样的内容,如果要修改内容,就必须修改源文件,然后重新上传到服务器上。 37.相对路径——所谓相对路径,就是以“/”或“\”开头的路径。 38.子程序——就是只执行程序而不返回值的程序模块。 39.会话——是指用户访问网站的过程;状态,就是指会话过程中的一些变量、设置等信息。 40.数据库——所谓数据库,就是按照一定数据模型组织、存储在一起的,能为多个用户共享的,与应用程序相对独立的、相互关联的数据集合。 五、简答题(本大题4小题,每小题4分,共20分) 41.什么是应用程序?为什么要建立应用程序? 答案:简单的说,添加了虚拟目录的文件夹就可以称为应用程序。建立应用程序后,多个网站之间就可以独立了,一些公共变量就不会混淆。 42.如果同时设置了背景颜色和背景图片,会出现什么情况? 答案:如果同时设置了背景颜色和背景图片,将只有背景图片起作用。 43.请简述四类运算符的优先级顺序。 答案:算术运算符>连接运算符>比较运算符>逻辑运算符。 44.某程序可以显示记录,但不能更新记录,请简述可能的原因。 答案:可能是没有对数据库文件设置相应的访问权限。(比如,去掉只读;对于Windows 2000、Windows XP 系统,如果安装时采用了NTFS文件系统,还要设置“Internet来宾帐户”可以完全控制该数据库文件。) 六、编程题(本大题2小题,第1小题15分,第二小题10分,共25分) 45.请编写程序段,随机产生一个0到9的整数。如果是偶数,则在页面上输出“生成的是偶数”,否则输出“生成的是奇数”。 程序清单: <% Dim s s=Int(10 * Rnd()) If (s Mod 2)=0 Then Response.Write "生成的是偶数" Else Response.Write "生成的是奇数"

《.NET程序设计》课程设计报告

《.NET程序设计》课程设计报告 班级:计算机1403 学号:1411640305 姓名:黄世增

一、实验名称 作者信息管理系统 二、实验目的 1.进一步掌握并加深“.NET程序设计”课程的基本知识,理解“.NET程序设计”课程中重点讲解的https://www.360docs.net/doc/e713416890.html,技术在项目开发中的应用。 2.培养正确的程序设计思想,提高分析问题、解决问题的能力。 3.提高学生进行技术总结和撰写说明书的能力。 三、系统设计描述 实验设计内容: 本次实验设计的内容是使用https://www.360docs.net/doc/e713416890.html,技术为某出版社设计并实现一个小型作者信息管理系统。出版社的工作人员登录该系统后,可以查看该社出版的各类书籍的作者的信息,并可以对作者信息进行各类查询,便于工作人员对作者信息进行管理。 系统数据库设计: 在SQL Server Express中为作者信息管理系统建立一个名为作者信息管理系统的数据库,并设计以下2张数据表: 1.系统管理员表 该表用来记录使用本系统的管理员的基本信息,包括管理员账户及密码。 【思考题】 (1)数据库中的一条记录中有若干个属性,若其中某一个属性(注

意是组)能唯一标识一条记录,该属性组就可以成为一个主键。 统管理员表中用户名应设为主键。 (2)用户名和密码都设为varchar字符型。 2.作者个人信息表 该表用来记录作者个人的基本信息,包括作者编号、姓名、联系地址、电话、email。 【思考题】 (1)表中作者编号应设为主键。 (2)表中作者ID、电话号码和Email为nchar字符串型,姓名和联系人地址为nvarchar字符串型。 设计好数据库的两个表后,分别在两个表中输入数据,如下图所示:

《材料力学性能》教学大纲

《材料力学性能》课程教学大纲 课程名称:材料力学性能(Mechanical Properties of Materials) 课程编号:012009 总学时数:48学时(其中含实验 8 学时) 学分:3学分 课程类别:专业方向指定必修课 先修课程:大学物理、工程化学、工程力学、材料科学基础 教材:《工程材料力学性能》(机械工业出版社、束德林主编,2005年)参考书目:[1] 王从曾编著,《材料性能学》,北京工业大学出版社,2001年 [2] Thomas H.Courtney(美)著,材料力学行为(英文版),机械工业 出版社,2004年 《课程内容简介》: 本课程主要讲授材料的力学性能与测试方法,主要内容有金属在静载荷(单向拉伸、压缩、扭转、弯曲)和冲击载荷下的力学性能、金属的断裂韧度、金属的疲劳、金属的应力腐蚀和氢脆断裂、金属的磨损和接触疲劳、金属的高温力学性能。 一、课程性质、目的和要求 本课程是材料成型及控制工程专业本科生金属材料工程方向指定必修课。本课程的主要任务是讨论工程材料的静载力学性能、冲击韧性及低温脆性、断裂韧性、疲劳性能、磨损性能以及高温力学性能的基本理论与性能测试方法,使学生掌握材料力学性能的基本概念、基本原理和测试材料力学性能的基本方法,探讨改善材料力学性能的基本途径,提高分析材料力学性能的思维能力与测试材料力学性能的能力,为研究开发和应用工程材料打下基础。 二、教学内容、要点和课时安排 《材料力学性能》授课课时分配表

本课程的教学内容共分八章。 第一章:金属在单项静拉伸载荷下的力学性能 6学时 主要内容:载荷—伸长曲线和应力—应变曲线;塑性变形及性能指标;断裂 重点、难点:塑性变形机理,应变硬化机理,裂纹形核的位错模型,断裂强度的裂纹理论,断口形貌。 第二章:金属在其它静载荷下的力学性能 6学时 主要内容是:缺口试样的静拉伸及静弯曲性能;材料缺口敏感度及其影响因素;扭转、弯曲与压缩的力学性能;硬度试验方法。 重点、难点:缺口处的应力分布特点及缺口效应 第三章:金属在冲击载荷下的力学性能 4学时 主要内容:冲击弯曲试验与冲击韧性;低温脆性;韧脆转化温度及其评价方法;影响材料低温脆性的因素。 重点、难点:韧脆转化 第四章:金属的断裂韧度 7学时 主要内容:裂纹扩展的基本方式;应力场强度因子;断裂韧性和断裂k判据;断裂韧度在工程上的应用;J积分的概念;影响材料断裂韧度的因素。 重点、难点:断裂韧性。 第五章:金属的疲劳 5学时 主要内容:疲劳破坏的一般规律;疲劳破坏的机理;疲劳抗力指标;影响材料及机件疲劳强度的因素。 重点、难点:疲劳破坏的机理。 第六章:金属的应力腐蚀和氢脆断裂 5学时 主要内容:应力腐蚀;氢脆 重点、难点:应力腐蚀和氢脆的机理 第七章:金属磨损和接触疲劳 6学时 主要内容:粘着磨损;磨粒磨损;接触疲劳;材料的耐磨性;减轻粘者磨损的主要措施;减轻磨粒磨损的主要措施;提高接触疲劳的措施。 重点、难点:磨损机理 第八章:金属高温力学性能 5学时

网络程序设计复习题(带答案)

网络程序设计复习题 1、为了实现网络的互联,互联网技术必须保证使用不同硬件结构的计算机能够进行通信 适用于多种不同的操作系统、能够使用多种分组交换网络硬件 2、因特网体系结构委员会的英文简称是ICCB 3、协议的实现要落实到一个个具体的硬件模块和软件模块上,在网络中将这些实现特定功能的模块称为实体 4、连接控制、流控制、报文分段等属于传输层功能 5、IP数据报协议标识字段指明了IP数据报封装的协议,当标识字段为 6 时 表示封装的是TCP协议 6、ICMP报文不包括地址解析报文 7、套接字是指IP地址和端口号的组合。 8、SOCKET编程中的全相关是指源端口号、目的端口号、源IP、目的IP、协议 9、IP分组的中的TTL值描述,每经过一个路由器,它的值会减1是正确的 10、TELNET通过TCP/IP协议模块在客户机和远程登录服务器之间建立一个TCP 11、以下提供可靠服务不是UDP协议的特性 12、虚拟局域网通常采用交换机端口号、MAC地址、网络层地址或IP广播组地 址定义 13、办公自动化服务不是网络操作系统提供的服务 14、分析IP数据报所携带的TCP内容不是IP路由器应具备的主要功能 15、java当中网络编程的接口是在https://www.360docs.net/doc/e713416890.html,包当中提供的。 16、会话的建立、维护和交互过程中的同步等属于会话层功能 17、在网络层,IP模块根据IP数据报首部中的协议值决定将数据报中的数据交 给哪一个模块去处理,当协议值为17,应将数据交给UDP模块处理 18、ARP请求帧在物理网络中是以广播方式发送的 19、ICMP在重组定时器超时情况下会产生数据报超时报告。 20、回应请求与应答报文的目的是对网络进行诊断和测试,使用它可以了解 设备的可达性 21、网络的功能主要由各层的协议来完成,互联网技术经过多年的发展形成了现在的TCP/IP协议。 22、为了保证网络的各个功能的相对独立性,以及便于实现和维护,通常将协议划分为多个子协议,并且让这些协议保持一种层次结构,子协议的集合通常称为协议簇。 23、IP协议是TCP/IP协议簇中的核心协议,提供数据传输的最基本服务,是实现网络互联的基本协议。 24、ICMP协议将请求转变为ICMP报文,然后将报文封装在IP协议中进行发送。包含ICMP报文的IP数据报首部的协议字段为1。

java网络编程课程设计终极版

枣庄学院 信息科学与工程学院课程设计任务书题目:基于UDP的聊天系统 小组成员:谭德鹏、崔浩、王珂、李洪康 成员学号:201212120221、201212120202 201212120224、201212120209 专业班级:网络工程、2012级本2班 课程:Java网络编程 指导教师:吕加国职称:副教授 完成时间:2015年4 月----2015年6 月 枣庄学院信息科学与工程学院制 2015年4 月15日

课程设计任务书及成绩评定 课程设计的任务和具体要求 任务:运用JDK和Eclipse开发环境,完成一个聊天或通讯系统的设计,初步掌握利用Java语言和JDK开发网络通信程序的基本方法。 具体要求: 1、需求分析:根据自己的选题,绘制用例图、功能结构图等。 2、系统设计:合理划分系统的功能结构,写清楚各个功能模块之间的关系。 3、详细设计:根据自己选题的业务逻辑,完成系统的界面设计、代码设计。 4、设计小结:总结课程设计的过程、体会及建议。 6、其他:参考文献等。 指导教师签字:吕加国日期: 2015-11-10 指导教师评语 成绩:____________指导教师签字:日期: 2015-1-10

课程设计所需软件、硬件等 ?硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024×768显示分辨率 ?软件环境: JDK XXX、Eclipse XXX 课程设计进度计划 起至日期工作内容备注 6月10日~6月20日 我们小组根据所选的题目以及在这学期所学的软件工程的知识,严格按照软件生产的流程(使用的是瀑布模型)来完成此作品,小组成员各职其所,都完成了预期所做的工作! 参考文献、资料索引 序号文献、资料名称编著者出版单位[1]《Java网络编程基础》(第2版).作者:朱喜福戴舒樽王晓勇

2020年智慧树知道网课《材料性能学(山东联盟)》课后章节测试满分答案

绪论单元测试 1 【单选题】(10分) 钢丝在室温下反复弯折,会越弯越硬,直到断裂,而铅丝在室温下反复弯折,则始终处于软态,其原因是() A. Fe发生加工硬化,发生再结晶,Pb发生加工硬化,不发生再结晶 B. Pb发生加工硬化,发生再结晶,Fe发生加工硬化,不发生再结晶 C. Fe不发生加工硬化,不发生再结晶,Pb发生加工硬化,不发生再结晶 D. Pb不发生加工硬化,不发生再结晶,Fe发生加工硬化,不发生再结晶 2 【单选题】(10分) 冷变形的金属,随着变形量的增加() A. 强度降低,塑性降低 B. 强度增加,韧性降低 C. 强度增加,塑性增加 D. 强度降低,塑性增加

3 【单选题】(10分) 金属的塑性变形主要是通过下列哪种方式进行的() A. 位错类型的改变 B. 晶粒的相对滑动 C. 位错的滑移 D. 晶格的扭折 4 【单选题】(10分) 在不考虑其他条件的影响下,面心立方晶体的滑移系个数为() A. 12 B. 8 C.

6 D. 16 5 【单选题】(10分) 下列对再结晶的描述的是() A. 再结晶后的晶粒大小主要决定于变形程度 B. 原始晶粒越细,再结晶温度越高 C. 发生再结晶需要一个最小变形量,称为临界变形度。低于此变形度,不能再结晶 D. 变形度越小,开始再结晶的温度就越高 6 【单选题】(10分) 冷加工金属经再结晶退火后,下列说法的是() A. 其机械性能会发生改变

B. 其晶粒大小会发生改变 C. 其晶粒形状会改变 D. 其晶格类型会发生改变 7 【单选题】(10分) 加工硬化使金属的() A. 强度减小、塑性增大 B. 强度增大、塑性增大 C. 强度减小、塑性降低 D. 强度增大、塑性降低 8

《网络程序设计》期末考试试题.doc

学习中心_________ 姓名_____________ 学号 西安电子科技大学网络与继续教育学院 2019学年上学期 《网络程序设计》期末考试试题 (综合大作业) 考试说明: 1、大作业试题于2019年4月25日公布,2019年4月26日至2019年5月12日在线上传大作业答卷(最多上传10张图片); 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须用《西安电子科技大学网络与继续教育学院综合大作业答题纸》手写完成,要求字迹工整、卷面干净; 4、文字描述部分需手写,系统界面以图片形式保存,且总页面不超过10页,上传考试系统。 一、(30分/题,共1个)以access数据库作为后台数据库,完成某学校教材信息的录入、修改和查询。要求所有教材信息必须存储在数据库中,最终提交作业报告,内容包括题目内容,题目总体分析,实现方案,数据库设计,功能模块设计,网页结构设计,运行结果,主要源程序。 总体分析 根据题目要求选择了使用桌面应用程序实现,而没有选择web实现。所以选择java作为开发语言,使用java提供的swing组件实现交互界面。题目要求使用access做为后台数据库,java提供了JDBC-ODBC驱动连接access数据库。

实现方案 使用access数据库(JDBC-ODBC连接) 使用java语言编程(JDK1.6) 使用swing实现交互界面 使用Netbeans7.0 IDE 数据库设计 表结构: 表:book 字段类型说明Id 长整型图书编号 book_name 字符串书名 author 字符串作者 publisher 字符串出版社 publish_date 时间出版时间 功能模块设计 程序中实现了图书信息的查询、添加、修改、删除。 1、查询模块 可以显示所有的图书信息, 可以按条件查询,可分别通过书名、作者、出版社进行查询相关图书信息。 2、添加模块 添加新的图书信息到数据库中 3、修改模块 对数据库中存储的图书信息进行修改。 4、删除模块 删除数据库中的图书信息。 详细设计 代码结构:

《网络应用程序设计》课程设计报告书

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级:0991132 学号:1099113202 姓名:赵燃 指导教师:宋毅、王家宁、徐红梅、姚璐 周期:一周 成绩: 2011年12 月23 日

一、课程设计的目的与要求( (一)课程设计目的与任务 (1)课程设计的目的:《网络高级程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用vc++语言进行面向对象设计的基本方法。提高运用面向对象知识分析实际问题、解决实际问题的能力。 (2)课程设计任务:局域网多人聊天室 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。 (二)题目要求 该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。系统采用VISUAL C++语言程序设计编程实现。并且按要求编写程序设计报告书,能正确编写分析、设计、编码、测试等技术文档。 二、设计正文 1系统分析 (1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。 (2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息除源端外的所有客户发送过去。 (3)服务器还要监控这些连接的状态。在客户主动离开或发生故障时从列表删除相应的表项,并及时更新连接表。 2功能详细描述及框图 用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天,客户端的聊天分为对群聊天和私聊的信息,该信息应通过程序控制分别进行处理。

西工大——材料性能学期末考试总结

材料性能学 第一章材料单向静拉伸的力学性能 一、名词解释。 1.工程应力:载荷除以试件的原始截面积即得工程应力σ,σ=F/A0。 2.工程应变:伸长量除以原始标距长度即得工程应变ε,ε=Δl/l0。 3.弹性模数:产生100%弹性变形所需的应力。 4.比弹性模数(比模数、比刚度):指材料的弹性模数与其单位体积质量的比值。(一般适用于航空业) 5.比例极限σp:保证材料的弹性变形按正比关系变化的最大应力,即在拉伸应力—应变曲线上开始偏离直线时的应力值。 6.弹性极限σe:弹性变形过渡到弹-塑性变形(屈服变形)时的应力。 7.规定非比例伸长应力σp:即试验时非比例伸长达到原始标距长度(L0)规定的百分比时的应力。 8.弹性比功(弹性比能或应变比能) a e: 弹性变形过程中吸收变形功的能力,一般用材料弹性变形达到弹性极限时单位体积吸收的弹性变形功来表示。 9.滞弹性:是指材料在快速加载或卸载后,随时间的延长而产生的附加弹性应变的性能。 10.粘弹性:是指材料在外力作用下,弹性和粘性两种变形机理同时存在的力学行为。 11.伪弹性:是指在一定的温度条件下,当应力达到一定水平后,金属或合金将产生应力诱发马氏体相变,伴随应力诱发相变产生大幅的弹性变形的现象。 12.包申格效应:金属材料经预先加载产生少量塑性变形(1-4%),然后再同向加载,规定残余伸长应力增加,反向加载,规定残余伸长应力降低的现象。 13.内耗:弹性滞后使加载时材料吸收的弹性变形能大于卸载时所释放的弹性变形能,即部分能量被材料吸收。(弹性滞后环的面积) 14.滑移:金属材料在切应力作用下,正应力在某面上的切应力达到临界切应力产生的塑变,即沿一定的晶面和晶向进行的切变。 15.孪生:晶体受切应力作用后,沿一定的晶面(孪生面)和晶向(孪生方向)在一个区域内连续性的顺序切变,使晶体仿佛产生扭折现象。 16.塑性:是指材料断裂前产生塑性变形的能力。 17.超塑性:在一定条件下,呈现非常大的伸长率(约1000%),而不发生缩颈和断裂的现象。 18.韧性断裂:材料断裂前及断裂过程中产生明显的塑性变形的断裂过程。 19.脆性断裂:材料断裂前基本上不产生明显的宏观塑性变形,没有明显预兆,往往表现为突然发生的快速断裂过程。 20.剪切断裂:材料在切应力的作用下沿滑移面滑移分离而造成的断裂。 21.解理断裂:在正应力的作用下,由于原子间结合键的破坏引起的沿特定晶面发生的脆性穿晶断裂。 22.韧性:是材料断裂前吸收塑性变形功和断裂功的能力。 23.银纹:聚合物材料在张应力作用下表面或内部出现的垂直于应力方向的裂隙。当光线照射到裂隙面的入射角超过临界角时,裂隙因全反射而呈银色。 24.河流花样:在电子显微镜中解理台阶呈现出形似地球上的河流状形貌,故名河流状花样。 25.解理台阶:解理断裂断口形貌中不同高度的解理面之间存在台阶称为解理台阶。 26.韧窝:微孔聚集形断裂后的微观断口。 27.理论断裂强度:在外加正应力作用下,将晶体中的两个原子面沿着垂直于外力方向拉断所需的应力称为理论断裂强度。 28.真实断裂强度:用单向静拉伸时的实际断裂拉伸力Fk除以试样最终断裂截面积Ak所得应力值。 29.静力韧度:通常将静拉伸的σ——ε曲线下所包围的面积减去试样断裂前吸收的弹性能。 二、填空题。 1. 整个拉伸过程的变形可分为弹性变形,屈服变形,均匀塑性变形,不均匀集中塑性变形四个阶段。 2. 材料产生弹性变形的本质是由于构成材料原子(离子)或分子自平衡位置产生可逆位移的反应。 3. 在工程中弹性模数是表征材料对弹性变形的抗力,即材料的刚度,其值越大,则在相同应力下产生的弹性变形就越小。

《网络程序设计》期末考试复习题及参考答案

网络程序设计复习题 (课程代码 252284) 一.选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A. java B. class C. html D. exe 2、设int型变量x = 1 , y = 2 , z = 3,则表达式y+=z--/x++ 的值是( )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 6、下列浏览器中,可以运行HTML中的Applet,而忽略其他HTML命令的是( )。 A. Netscape 3.0 B. Internet Explorer5.0 C. Hot Java D. Appletviewer 7、以下哪一个不是JA V A的标准数据流( )。 A. 标准输出数据流 B. 标准输入数据流 C. 标准错误数据流 D. 标准运算数据流 8、下面声明数组的写法错误()。 A. int a[ ]; B: int[ ] a; C: int[ ][ ] a[3][ ]; D; int[ ][ ] a[ ][3]; 9: 设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char 型变量,则表达式x+y*a/x+b/y+c的值为( )类型。

C语言程序设计期末考试复习题及复习资料

C语言考试期末考试复习题及答案 一、选择题 (1) 一个C语言程序总是从(C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 (2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A) ‘x’&&’y’B) x||y+z&&y-z C) x<=y D) !((x

网络编程课程设计

课程设计说明书 课程名称:Windows网络编程 设计题目:基于JA V A网络聊天室设计 学院:计算机科学与信息工程学院 专业班级:网络工程12级 指导教师: 小组成员: 2015年6月 目录 摘要 (1) 引言: (1) 1.需求分析 (1) 1.1需求分析 (1) 1.2系统简介 (2) 2. 系统开发技术 (2)

2.1 JAVA网络编程技术 (2) 2.2 Socket套接字 (3) 2.3 TCP三次握手 (3) 3. 系统总框图与功能分析 (4) 3.1系统总框图 (4) 3.2系统功能模块分析 (5) 4. 系统模块代码设计与分析 (6) 4.1系统流程分析 (6) 4.2类的设计与分析 (7) 4.3客户端模块部分代码 (7) 4.4服务器端模块部分代码: (9) 5.系统测试 (11) 6. 总结 (13) 7.成员分工 (13) 参考文献: (14)

网络聊天室 摘要:随着我国经济发展和网络的普及,网络技术也越来越多地被应用于日常工作之中。在程序设计领域,面向对象的编程技术正在逐步代替面向过程的程序设计技术,成为计算机应用设计开发的主流,对于人与人之间通过网络的沟通和交流,聊天室是人们最常见、最直接的交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型应用。本文所介绍的网络聊天系统是基于JAVA应用程序开发设计的,其主要特性是简单、面向对象、分布式、解释执行、安全、体系结构中立、可移植、高性能、多线程以及动态性。 关键词:局域网、聊天室、JAVA、Socket、WindowsSocket 引言:目前,基于TCP/IP协议的网络得到了普及和飞速的发展,Windows下的网络程序越来越显得重要。利用TCP/IP协议提供的编程接口———Socket(套接字)可以开发出TCP/IP应用程序。正确的使用WindowsSocket,就可使得不同地址下的进程得以在Windows 环境下顺利进行各种网络通信,因此研究WinSock更有意义。而基于TCP/IP协议网络环境下的应用程序是通过客户机/服务器(C/S)作用方式模式在网络(应用)编程界面实现的。本次实验采用java语言设计一个基于C/S模式的TCP网络通讯程序。实现客户端与服务器端之间的数据传输。 1.需求分析 1.1需求分析 根据当前网络的需求,网络聊天越来越受到各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而小组成员也都学习过JAVA 语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,小组成

网络程序设计试题A卷- 最新版本

西安电子科技大学《网络程序设计》试题 (2013年A卷) 考试时间120 分钟试卷编号 班级学号姓名任课老师姓名 一、单选题(10×2分=20分) 1.以下字段中,不属于IP首部的是 A. 协议类型 B. 生存时间 C. 源IP地址 D. 目的端口号 2.以下函数中,不会产生阻塞的是 A. send( ) B. sendto( ) C. connect( ) D. listen( ) 3.进程A是进程B的父进程,当A正在运行时B退出,下列叙述中正确的是 A.进程A也将退出 B.进程A将收到SIGCHLD信号 D.进程A将收到SIGKILL信号 D.进程A会成为僵尸进程

4.整数0x12345678在little-endian字节序主机内存中的存储形式是_________(注:内存由低到高) A. 12 34 56 78 B. 78 56 34 12 C. 34 12 78 56 D. 56 78 12 34 5.使用信号驱动I/O时哪一个不是必须要执行的操作 A.为信号SIGIO关联一个信号处理函数 B.设置套接字为非阻塞模式 C.设置套接字所有者 D.允许套接字进行信号驱动I/O 6.对使用UDP协议的套接字调用connect函数,下面叙述中正确的是A.connect函数将阻塞 B.connect函数将导致3次握手操作 C.connect函数记录对方的IP地址和端口后立刻返回 D.不能对使用UDP协议的套接字描述符调用connect函数 7.对函数调用send(sockfd,“12xyz”,5,MSG_OOB)的描述中正确的是 A.只有字符z被写入发送缓冲区 B.只有字符串12xy被写入发送缓冲区 C.字符串12xyz中的每个字符都将作为带外数据发送 D.TCP协议发送的下一个报文段中URG标志将置位 8.在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明A.对于只有一个IP地址的主机,使用“127.0.0.1”地址 B.对于有多个网卡的主机,使用其中任意一个IP地址 C.对于有多个网卡的主机,表示所有IP地址,并处理所有地址的请求D.以上均不对

网络编程试卷(含答案)

一.选择题(30分,每题3分) 1.以下哪个是TCP/IP模型(B) A.应用层,表示层,网络层,物理层; B.应用层,传输层,网络层,链路层C.应用层,传输层,链路层,物理层 D.应用层,传输层,网络层,物理层 的设计架构不包含以下哪一种( C) A.集中式架构 B.完全分布式架构 C.点对点架构 D.混合型架构 请求方法不包括如下哪一种( B) A.Post C.Get 的作用不包括(C) A.文件共享; B. 通过应用程序直接或间接使用远程主机; C.提供一致性的协议,避免用户在不同主机上有相同的操作方式; D. 提供可靠及有效率的数据传输; 与POP3的端口分别是:( B) A.25,75 B. 25,110 C.21,75 D. 21,110 地址是,子网掩码是,则其网段的广播地址是(C) A.的特点不包括如下哪一点(C) A.面向连接 B.全双工数据传送 C.传输速度快 D.面向字节流 8.关于线程哪一点是对的。(D) A.任何一个C#程序都有一个默认的线程,该线程是后台线程; B. 每个进程都有一个线程池。线程池默认大小有35个线程; C.线程池中的线程都是前台线程; D. C#中常用的线程同步的语句是lock语句; 9.在Internet中用一个三元组可以在全局中唯一标识一个应用层进程,这不包括下列哪一种( A ) A.网络层协议地址 C.端口号 D.传输层协议 IP协议簇中,哪一种是网络层协议( B ) A.TCP C.SMTP

二.判断题(15分,每题1分,用T表示对,F表示错) 1.端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535 (F) 2.线程池中既有后台线程也有前台线程,某进程的所有前台线程都终止了,后台进程也自 然终止。(F) 3.在SMTP中,电子邮件由信封、首部和正文3部分组成。(T) 4.数字签名是私钥加密,公钥解密。(T) 5.ESMTP与SMTP的区别是发送邮件时要求用户身份验证。(T) 6.HTTP的流水线方式是指客户在收到前一个响应后才能发出下一个请求。(F) 7.HTTP(Hypertext Transfer Protocol),超文本传输协议,目前的版本是。(F) 8.NAT功能是只能用硬件来实现(F) 9.IP地址有A,B,C,D,E五类(F) 10.UDP不需要连接,速度比TCP快;(T) 11.UDP传输的数据无消息边界;(F) 12.Socket类比位于底层TcpClient类提供了更高层次的抽象,它们封装TCP套接字的创建, 不需要处理连接的细节。(F) 13.监听套接字与新创建的套接字所使用的端口不同。(F) 14.本机回送地址是(T) 15.Socket套接字的Accept()方法若检测到监听套接字的缓冲区是空的话,立刻返回(F)三.简答题(55分) 1.什么是端口,网络通信中为什么要引入端口(6分) 答: 端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口。端口是操作系统可分配的一种资源;应用程序(进程)通过系统调用与某端口绑定(binding)后,传输层传给该端口的数据都被相应进程接收,相应进程发给传输层的数据都通过该端口输出。 1.在网络通信过程中,需要唯一识别通信两端的端点,即运行于某机器中的应用程序。如 果没有引入端口,则只能通过进程号进行识别。进程号是系统动态分配的,不同的系统

计算机网络课程设计题目和要求

计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。 一、格式要求及须知: (1)使用学院网站的课程设计模版,要求格式美观,字体及编号要求见表1。 表1 字体及编号要求

(2)参考文献:参考课本的参考文献格式(附录C)。但编号换成[1]、[2]……(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。 (4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。 (5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。打印后递送到指导老师的信箱。 (6)如发现两组设计雷同或抄袭互联网,该组重做! 二、任务完成形式: 交付课程设计说明书、设计作品(需要验收)。 设计作品指的是完整的源程序代码(对于第二类题目为仿真文件)。 课程设计说明书(纸质+电子版),内容包括:设计任务、需求分析、总体设计、详细设计(相应地给出关键的代码)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 设计工作计划与进度安排: 根据所选题目,合理安排进度计划,总体上需要40个小时。以下仅供参考: 1. 原理知识 4小时 2. 程序设计技术 4小时 3. 开发环境与程序调试环境 4小时 4. 总体设计、关键环节的详细设计 8小时

相关文档
最新文档