翼度科技»论坛 云主机 LINUX 查看内容

Linux学习/TCP编程学习笔记

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
函数

socket函数
  1. #include <sys/types.h> /* See NOTES */
  2. #include <sys/socket.h>
  3. int socket(int domain, int type, int protocol);
  4. 功能:
  5.         创建一个套接字
  6. 参数:
  7. domain:
  8.         AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用IPv4的地址
  9.         AF_INET6 与上面类似,不过是来用IPv6的地址
  10.         AF_UNIX 本地协议,使用在Unix和Linux系统上,一般都是当客户端和服务器在同一台及其上的时候使用
  11. type:
  12.         SOCK_STREAM 这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来进行传输。
  13.         SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行它的连接。
  14.         SOCK_SEQPACKET该协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。必须把这个包完整的接受才能进行读取。
  15.         SOCK_RAW socket类型提供单一的网络访问,这个socket类型使用ICMP公共协议。(ping、traceroute使用该协议)
  16.         SOCK_RDM 这个类型是很少使用的,在大部分的操作系统上没有实现,它是提供给数据链路层使用,不保证数据包的顺序
  17.        
  18. protocol:
  19.         传0 表示使用默认协议。
  20. 返回值:
  21.         成功:返回指向新创建的socket的文件描述符,失败:返回-1,设置errno
复制代码
blind 函数
  1. #include <sys/types.h> /* See NOTES */
  2. #include <sys/socket.h>
  3. int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
  4. 功能:
  5.         将套接字与地址绑定。
  6.        
  7. 参数:
  8.         sockfd:
  9.                 socket文件描述符
  10.         addr:
  11.                 构造出IP地址加端口号
  12.         addrlen:
  13.                 sizeof(sockaddr)长度
  14. 返回值:
  15.         成功返回0,失败返回-1, 设置errno
复制代码
listen 函数
  1. #include <sys/types.h> /* See NOTES */
  2. #include <sys/socket.h>
  3. int listen(int sockfd, int backlog);
  4. sockfd:
  5.         socket文件描述符
  6. backlog:
  7.         排队建立3次握手队列和刚刚建立3次握手队列的链接数和
复制代码
accept 函数
  1. #include <sys/types.h>                 /* See NOTES */
  2. #include <sys/socket.h>
  3. int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
  4. sockdf:
  5.         socket文件描述符
  6. addr:
  7.         传出参数,返回链接客户端地址信息,含IP地址和端口号
  8. addrlen:
  9.         传入传出参数(值-结果),传入sizeof(addr)大小,函数返回时返回真正接收到地址结构体的大小
  10. 返回值:
  11.         成功返回一个新的socket文件描述符,用于和客户端通信,失败返回-1,设置errno
复制代码
connect 函数
  1. #include <sys/types.h>                                         /* See NOTES */
  2. #include <sys/socket.h>
  3. int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
  4. sockdf:
  5.         socket文件描述符
  6. addr:
  7.         传入参数,指定服务器端地址信息,含IP地址和端口号
  8. addrlen:
  9.         传入参数,传入sizeof(struct sockaddr)大小
  10. 返回值:
  11.         成功返回0,失败返回-1,设置errno
复制代码
recv 函数
  1. ssize_t recv(int sockfd, void *buf, size_t len, int flags);
  2. 功能:
  3.         接收数据
  4. 参数:
  5.         sockfd:  套接字描述符   socket的返回值或者accept返回值
  6.         buf: 接收数据缓存
  7.         len: buf的长度
  8.         flags: 接收数据的标志, 一般默认为0
  9.        
  10. 返回值:
  11.         成功: 实际读到的数据的字节数, 如果对方已经关闭了 返回0表示读到结尾
  12.         失败: -1
复制代码
send 函数
  1. ssize_t send(int sockfd, const void *buf, size_t len, int flags);
  2. 功能:
  3.         发送数据
  4. 参数:
  5.         sockfd:  套接字描述符  socket的返回值或者accept返回值
  6.         buf: 发送的数据
  7.         len: 发送数据的长度
  8.         flags: 发送数据的标志 一般默认0
  9. 返回值:
  10.         成功: 非零值  实际上发送数据的字节数
  11.         失败: -1
复制代码
参考:
https://blog.csdn.net/dengjin20104042056/article/details/107636358

来源:https://www.cnblogs.com/songpoetry/p/18377892
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
来自手机

举报 回复 使用道具