4、字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符 串的个数 )
int countABC(* s)
{
int i = 0;
int j = 0;
int num = 0;
scanf("%s",s);
int len = strlen(s);
for (i=0; i<len-3; i++)
{
j = strcmp(s+i,"ABC");
if(j==0)
num++;
}
}
6、询问我操作系统的进程和线程的区别
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元 实现系统对应用的并发性。进程和线程的区别,简而言之:
一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大 地提高了程序的运行效率。
1、ping命令使用的是哪种报文?
PING命令使用ICMP的哪种code类型:Echo reply(回显请求报文)
2、OSI分哪几个层,IP是在哪个层?
osi:物理层、链路层、网络层、传输层、会话层、管理层、应用层。
tcp/ip:链路层、网络层、运输层、应用层。IP在网络层
5、五元组
二元组的定义:<K,R>
三元组的定义:<D,F,A>
五元组的定义:<V,O,G,M,S>
V是值的集合,O是操作的集合,G是构成名字的文法,M是存储的集合,S是从G能构成的名字 几个到M的映射.
iP报文中的五元组(即源IP地址,源端口号,目的IP地址,目的端口,协议)。
半相关
综上所述,网络中用一个三元组可以在全局唯一标志一个进程:
(协议,本地地址,本地端口号)
这样一个三元组,叫做一个半相关(half-association),它指定连接的每半部分。
全相关
一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是 说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要 一个五元组来标识:
(协议,本地地址,本地端口号,远地地址,远地端口号)
这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合 成一个合适的相关,或完全指定组成一连接。
2 :请你详细的解释一下 IP 协议的定义,在哪个层上面,主要有什么作用? TCP 与 UDP 呢?
TCP/IP 是一个协议集,对英特网中主机的寻址方式,主机的命名机制,信息的传输规则,以及各种服务功能作了约定。
IP 协议是英特网中的交通规则,连入英特网中的每台计算机及处于十字路口的路由器都必须熟知和遵守该交通规则。
IP 运行于互联层 。屏蔽各个物理网络的细节和差异。
TCP 传输控制协议,运行于传输层 。
利用 IP 层提供的服务,提供端到端的可靠 的( TCP )服务。
UDP 用户数据报协议,运行于传输层 。
利用 IP 层提供的服务,提供端到端的不可靠 的( UDP )服务。
3 :请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
一般意义上说交换机是工作在数据链路层。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了网络层。也就是说:它等于 “ 数据链路层 + 部分网络层 ” 。交换机中传的是帧。通过存储转发来实现的。
路由器是工作在网络层。路由器中传的是 IP 数据报。主要是选址和路由。
交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。
路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。
交换机最大的好处是快速,路由器最大的好处是控制能力强。
winsock 建立连接的主要实现步骤?
答:服务器端:socker() 建立套接字,绑定(bind )并监听(listen ),用accept ()等待客户端连接。
客户端:socker() 建立套接字,连接(connect )服务器,连接上后使用send() 和recv (),在套接字上写读数据,直至数据交换完毕,closesocket() 关闭套接字。
服务器端:accept ()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send() 和recv ()写读数据,直至数据交换完毕,closesocket() 关闭套接字。
动态连接库的两种方式?
调用一个DLL 中的函数有两种方法:
1 .载入时动态链接(load-time dynamic linking ),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL 的导入库,导入库向系统提供了载入DLL 时所需的信息及DLL 函数定位。
2 .运行时动态链接(run-time dynamic linking ),运行时可以通过LoadLibrary 或LoadLibraryEx 函数载入DLL 。DLL 载入后,模块可以通过调用GetProcAddress 获取DLL 函数的出口地址,然后就可以通过返回的函数指针调用DLL 函数了。如此即可避免导入库文件了。
IP 组播有那些好处?
答:Internet 上 产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个 接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组 播技术的核心就是针对如何节约网络资源的前提下保证服务质量。