用这个系列在记录自己的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

 

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

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

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

 

 

相关文章: