1 / 3
文档名称:

linuxc网络网络编程面试题收集.pdf

格式:pdf   大小:148KB   页数:3页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

linuxc网络网络编程面试题收集.pdf

上传人:2210620458 2022/9/30 文件大小:148 KB

下载得到文件列表

linuxc网络网络编程面试题收集.pdf

文档介绍

文档介绍:该【linuxc网络网络编程面试题收集 】是由【2210620458】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【linuxc网络网络编程面试题收集 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。[转]linuxc/网络/网络编程面试题收集
基础部份:
?
func(char*str)
{
printf("%d",sizeof(str));
printf("%d",strlen(str));
}
main()
{
chara[]="123456789";
printf("%d",sizeof(a));
func(a);
}
答:1049
网络/网络编程部份:
1、connect方法会阻塞,请问有什么方法可以避免其长时间阻塞?
答:最通常的方法最有效的是加定时器;也可以采用非阻塞模式。
2、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?
答:若客户端掉线或者重新启动,服务器端会收到复位信号,每一种tcp/ip得实现不一样,控制机制也不一样。
?分别是什么?
答:
简:
30表示的是网络号(networknumber)是30位,剩下2位中11是广播(broadcast)地址,00是multicast
地址,只有01和10可以作为hostaddress。
详:
,&
=,此子网的地址空间是2位,即可以有4个地址:,
,,。第一个地址的主机号(hostnumber/id)是0,而主机号0
代表的是multicast地址。最后一个地址的最后两位是11,主机号每一位都为1代表的是广播(broadcast)地
址。所以只有中间两个地址可以给host使用。其实那个问题本身不准确,广播或multicast地止也是可以使用
的地址,所以回答4也应该正确,当然问的人也可能是想要你回答2。我个人觉得最好的回答是一个广播地址,
一个multicast地址,2个unicast地址。
?有什么用处,通常那些工具会用到它?(ping?traceroute?ifconfig?netstat?)
答:
简:TTL是TimeToLive,一般是hupcount,每经过一个路由就会被减去一,如果它变成0,包会被丢掉。它
的主要目的是防止包在有回路的网络上死转,浪费网络资源。ping和traceroute用到它。
详:TTL是TimeToLive,目前是hupcount,当包每经过一个路由器它就会被减去一,如果它变成0,路由器
就会把包丢掉。IP网络往往带有环(loop),比如子网A和子网B有两个路由器相连,它就是一个loop。TTL的
主要目的是防止包在有回路的网络上死转,因为包的TTL最终后变成0而使得此包从网上消失(此时往往路由器
会一个送ICMP包回来,traceroute就是根据这个做的)。ping会包送出去,所以里面有它,但是ping不一定
非要不可它。traceroute则是完全因为有它才能成的。ifconfig是用来配置网卡的,netstat-rn是用来列路由
表的,所以都用不着它
?在linux环境中怎么来配置一条默认路由?
答:
简:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包
应该的送哪一张网卡上的。在Linux上可以用“routeadddefaultgw<默认路由器IP>”来配置一条默认路由。
详:路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包
应该的送哪一张网卡上的。路由表的每一行至少有目标网络号、netmask、到这个子网应该使用的网卡。当路由
器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的netmask和包里的目标IP地址做并逻辑运算
(&)找出目标网络号,如果此网络号和这一行里的网络号相同就将这条路由保留下来做为备用路由,如果已经有
备用路由了就在这两条路由里将网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结
束任没有找到任何路由,就用默认路由。确定路由后,直接将包到送对应的网卡上去。在具体的实现中,路由表
可能包含更多的信息为选路由算法的细节所用。题外话:路由算法其实效率很差,而且不scalable,解决办法是
使用IP交换机,比如MPLS。
在Linux上可以用“routeadddefaultgw<默认路由器IP>”来配置一条默认路由。
,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来
测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?
答:测试这两台机器是否连通:从一台机器ping另一台机器
如果ping不通,用traceroute可以确定是哪个路由器不能连通,然后再找问题是在交换设备/hup/cable
等。
,使用多进程与多线程,请问有什么区别?
答案一:
1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥
有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合
于在SMP机器上运行,而进程则可以跨机器迁移。
答案二:
根本区别就一点:用多进程每个进程有自己的地址空间(addressspace),线程则共享地址空间。所有其它区别
都是由此而来的:
1。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
3。同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内。