socket编程接口函数简单介绍
来源:互联网 发布:淘宝大衣比较好的店 编辑:程序博客网 时间:2024/06/05 04:39
- socket
- bind
- listen【服务器】
- connect【客户端】
- send和write
- recv和read
- inet_aton、inet_addr、inet_ntoa【不支持IPV6】
- inet_ntop、inet_pton【支持IPV6】
- struct sockaddr
- 这个结构体是网络编程接口中用来表示一个IP地址的
- 注意这个IP地址是不区分IPv4和IPv6的(或者说是兼容IPv4和IPv6的)
- typedef uint32_t in_addr_t; 网络内部用来表示IP地址的类型
- struct in_addr
- /* Structure describing an Internet socket address. */
- struct sockaddr
本章知识点主要来自朱有鹏老师视频课,部分自己添加总结【重要的不是记函数,而是思路】
对于函数的使用,经常查 man手册,对于这些函数,重要的是这些结构体
建立连接
socket函数类似于open,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类型),之
后我们操作这个网络连接都通过这个网络文件描述符。
通俗的来说就是开启一个监视描述符。
int socket(int domain, int type, int protocol); //protocol 协定
// socket - create an endpoint for communication 创建通信端点
将一本地地址与一套接口捆绑,给套接字赋予生命。
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
// bind - bind a name to a socket 将名称绑定到套接字
在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号)。
监听
int listen(int sockfd, int backlog);
连接
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
// connect - initiate a connection on a socket
发送和接收
ssize_t send(int sockfd, const void *buf, size_t len, int flags);
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
辅助性函数【ip地址点分十进制与二级制的转换】
表示IP地址相关数据结构【都定义在 netinet/in.h】
{
in_addr_t s_addr;
};
struct sockaddr_in
{
__SOCKADDR_COMMON (sin_);
in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE -
sizeof (in_port_t) -
sizeof (struct in_addr)];
};
这个结构体是linux的网络编程接口中用来表示IP地址的标准结构体
bind、connect等函数中都需要这个结构体,这个结构体是兼容IPV4和IPV6的。在实际编程中这个结构体会被一个struct sockaddr_in或者一个struct sockaddr_in6所填充。
- socket编程接口函数简单介绍
- socket编程接口介绍
- Socket编程之简单介绍
- SOCKET网络编程(简单介绍)
- linux socket编程之socket()函数介绍
- linux socket编程之socket()函数介绍
- linux socket编程之socket()函数介绍
- linux下socket编程接口处理函数
- C++ Socket编程的简单介绍
- Socket编程服务端原理简单介绍
- Socket编程客户端原理简单介绍
- SSL编程- 简单函数介绍
- SSL编程- 简单函数介绍
- SSL编程- 简单函数介绍
- SSL编程- 简单函数介绍
- SSL编程- 简单函数介绍
- socket网络编程--初等网络函数介绍
- linux网络编程入门socket函数介绍
- SGU 143. Long Live the Queen(树形DP)
- HDU-5584 LCM Walk(GCD)
- Http协议
- springboot 系统学习2 -- fastjson
- 内联函数inline ,宏与函数的区别
- socket编程接口函数简单介绍
- Intersection
- Java--day06构造方法
- 我的第一个安卓通讯
- HDU
- session简介
- Linux操作系统与实训教程1-2章课后习题(简答题)
- final关键字可以用来修饰类、方法、变量、参数,不能修饰抽象类和接口
- 《从gpio监控按键事件小结》