linux soket编程 服务端 为什么要两个套接字呢

个人理解自己在程序中建立的socket是为了实现,进程到本机端口的通信accept函数接收建立的是与另一台机器通信用的,其地位与客户端建立的socket一样不知道理解的对... 个人理解
自己在程序中建立的socket是为了实现,进程到本机端口的通信

accept函数接收建立的是与另一台机器通信用的,其地位与客户端建立的socket一样

不知道理解的对不对
展开
 我来答
_玄武酷酷熊_
推荐于2017-12-16
知道答主
回答量:31
采纳率:0%
帮助的人:15.7万
展开全部
套接字1调用listen()之后会由主动模式变为被动模式来接受客户端的请求,如果等待队列中有请求进来,accept()会返回一个新的套接字2来处理请求,套接字1则继续在端口上监听,套接字1和套接字2具有相同的属性。
建立两个套接字的设计是为了使用起来更加直观,这就和线程池中,主线程用来接受请求,子线程处理请求差不多。
个人理解,纯手打,如有错误,欢迎指出。
追问
那么直接用套接字1能进行收发吗
追答
不能,监听套接字永远只能用来接受连接请求。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式