sockets - 套接字的定义是什么,为什么需要它以及它是如何工作的?

sockets - 套接字的定义是什么,为什么需要它以及它是如何工作的?

我知道socket在网络程序中被广泛使用,我可以用它写代码。但我无法理解一些事情:

1. 为什么我们需要套接字?

如果是通过网络层来区分应用层程序,为什么不使用应用名称或其他唯一属性呢?

插座是标准吗?

套接字只是linux或其他操作系统中的一个结构吗?

2.socket是如何工作的?

socket有很多函数,比如bind、accept、listen、send。比如send()通过TCP发送msg到dest,它是如何发送msg到网络层的?它是否将 msg 发送到 tcp 缓冲区?网络层进程如何读取 tcp 缓冲区数据以及如何将数据发送到下层进程?

如果我使用send(int sockfd, const void *buf, size_t len, int flags)函数,第一个 arg 'sockfd' 是一个未定义的套接字,比如一个随机的 int,会导致什么结果,为什么?os进程是什么?

相关典藏

《你的降落伞是什么颜色?(全新修订版)》([美]理查德·尼尔森·鲍利斯(Richard N. Bolles)著 李春雨 王鹏程 陈雁 译)【简介
宣城市广德市所有商圈足疗按摩商家综合服务排名前十榜单,广德市足疗按摩哪家服务好!
正在阅读:牛拜单车如何结束行程还车的方法介绍一览;牛拜单车如何结束行程还车的方法介绍一览;