Socket 编程概述

Socket 编程

标签(空格分隔): 计算机网络


前言

网络编程的世界里面,有各个层次的网络编程接口,这些接口给予我们针对不同的层次对网络进行操控,常见有下图这些层次的接口

网络接口 API

使用哪个层次的接口可以对实际对那个层次进行控制。

而我们常用的应用编程 API 则是应用层和传输层之间的网络编程接口,通过这个系统调用 API 切换应用程序和操作系统的控制权

应用编程 API

几种典型的应用编程接口:

  • Berkeley UNIX 操作系统定义的 API,称为套接字接口(Socket interface),简称套接字(socket)

  • windows 中采用了套接字接口 API,形成稍有不同的 API,并称为 winsock

Socket 概述

通信模型:客户/服务器(C/S)

socket 作为应用进程通信的一种抽象机制,他就像是一个客户端的插头插到了服务器对应的插座

应用进程间ton

我们知道,对外标识通信端点地址是 IP 地址 + 端口号, 那么操作系统和进程实际上是如何管理套接字的呢?实际上每当创建一个套接字的时候,操作系统会返回一个小整数作为描述符来标识这个套接字,而应用程序则使用这个描述符来引用该套接字

更进一步地说,Socket 其实也是类似文件的一种抽象,当应用进程创建套接字时,操作系统分配一个数据结构存储该套接字相关信息,并返回套接字描述符。另外在操作系统内部维护着一个 Socket 描述符表,根据套接字描述符可以引用 Socket 的一个数据结构,里面包含了两个端点通信需要的所有东西 通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。

socket 描述符表

Socket API 函数

针对使用 Windows 上的 winsock 进行网络应用编程的时候,我们一般要走这样的流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值