C++网络编程之路(一):常见socket函数

2022-06-23 14:02:46 浏览数 (1)

用这个系列在记录自己的C 网络编程之路。

首先,网络编程必然离不开socketAPI函数,大多数 Socket API 都源于BSD Socket (即伯克利套接字Berkeley Sockets)),因此这些 socket 函数在不同的平台有着相似的签名和参数。

### 常用的socketAPI函数

函数名称

函数简单描述

附加说明

socket

创造某种类型的套接字

bind

将一个 socket 绑定一个ip与端口的二元组上

listen

将一个 socket 变为侦听状态

connect

试图建立一个 TCP 连接

accept

尝试接收一个连接

send

通过一个socket发送数据

recv

通过一个socket收取数据

select

判断一组socket上的读事件

gethostbyname

通过域名获取机器地址

close

关闭一个套接字,回收该 socket 对应的资源

Windows 系统中对应的是 closesocket

shutdown

关闭 socket 收或发通道

setsockopt

设置一个套接字选项

getsockopt

获取一个套接字选项

以上只是最常用的一部分socket 函数,在类Unix系统中,我们可以使用相关的工具查看它的用法。具体而言,我们想要查看bing函数的方法,只需要在 shell 终端输入 man bind

如上面的代码片段所示,man手册对于一个函数的说明一般包括如下几部分:

  • 函数声明及相关数据结构所在的头文件,你实际编码时如果需要使用这个函数必须包含该头文件;
  • 函数的签名,即该函数的参数类型、个数和返回值;
  • 函数用法说明,并可能包括一些注意事项;
  • 函数返回值说明;
  • 调用函数出错可能得到的错误码值;
  • 一些相关函数在 man 手册的位置索引。(connect 没有这个部分)

0 人点赞