Socket面试题整理

本文深入探讨了Socket的概念,包括其作为TCP/IP抽象层的作用,以及如何通过IP地址和端口号唯一标识进程。此外,还讨论了WebSocket与Socket的区别,强调WebSocket在实时数据更新场景中的优势。同时,文章对比了TCP与UDP协议的特点,介绍了全双工、半双工和单工通信协议,并分析了HTTP与WebSocket在连接方式上的差异。
摘要由CSDN通过智能技术生成

1.Socket是什么

Socket是应用层与传输层的一个抽象,将复杂的TCP/IP协议隐藏在socket接口后,只对应用层暴露简单的接口。

socket是一种特殊的文件,它也有文件描述符,进程可以打开一个socket,并且像处理文件一样对它进行read()和write()操作,而不关心数据是怎么在网络上传输的。

socket是一个tcp连接的两端。

2.Socket如何唯一标识一个进程

socket基于tcp协议实现,网络层的ip地址唯一标识一台主机,而传输层的协议+端口号可以唯一标识绑定到这个端口的进程。Bind()方法绑定到端口号

3.通信双方如何进行端口绑定

通常服务端启动时会绑定一个端口提供服务,而客户端在发起连接请求时会随机分配一个端口号

4.Socket和WebSocket的区别

Socket是应用层与传输层的一个抽象
WebSocket是应用层协议,它是基于TCP实现的,同时接住了HTTP协议建立连接

5.为什么项目中使用WebSocket技术

当处理页面数据自动更新时,在使用的js不断的请求服务器,查看是否有数据更新,如果有就获取到新数据,进行对页面信息的更新,但是当页面长时间没有数据更新时,这样就会存在资源浪费的情况,所以才会使用WebSocket来解决

6.UDP和TCP协议概念

1)TCP提供面向连接的传输,通信前需要先建立连接,是在连接好的通道上进行数据传输;UDP提供无连接的传输,通信前不需要

socket网络编程面试题中,常见的问题包括TCP报文重传机制、epoll的优势以及ThreadLocal的作用。 关于TCP报文重传机制,TCP协议在发送一个报文段后会设置一个定时器,如果在定时器到期之前没有收到确认,就会重发这个报文段。这种机制能够确保数据的可靠传输。 关于epoll的优势,epoll是一种高效的事件驱动I/O模型,在处理大量文件描述符时具有高效的性能。与select和poll不同,epoll不会随着文件描述符数目的增长而降低效率。它维护一个队列,只对活跃的socket进行操作,这样可以提高效率。但在大多数I/O端口都是活跃的情况下,epoll的效率可能不如select高,因为维护队列可能会复杂。 关于ThreadLocal的作用,ThreadLocal是一个线程局部变量,每个线程都有自己独立的变量副本。它可以用来隔离多个线程之间的数据共享冲突。当多个线程需要访问同一个变量时,可以使用ThreadLocal来保证每个线程拥有自己独立的副本,避免线程间的数据竞争和同步问题。ThreadLocal可以极大地简化程序,使其更加易读和简洁。但需要注意的是,ThreadLocal并不能替代同步机制,两者面向的问题领域不同,同步机制是为了同步多个线程对相同资源的并发访问,而ThreadLocal是用来隔离多个线程的数据共享。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [常见网络编程面试题整理](https://blog.csdn.net/wswbdfei/article/details/38724915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值