Socket接口

Linux Socket函数库

int socket(int domain, int type, protocol)

 用于分配Socket句柄,在特定的网络(domain)下,使用特定的协议(protocol)和数据传送方式(type)进行通信
  • domain – 通信使用的协议族、网络类型(TCP/IP协议族是ARPA Internet协议,AF_INET)
  • type – 数据传送方式(TCP是SOCK_STREAM,UDP是SOCK_DGRAM)
  • protocol – 通信中使用的协议(IPPROTO_TCP或IPPROTO_UDP)

int close(int fd)

关闭Socket
  • fd – Socket描述符

int bind (int sockfd, struct sockaddr *my_addr, int addrlen)

 给Socket指定本地地址
  • dockfg – Socket描述符
  • addrlen – my——addr结构的长度
  • my——addr本地地址

int listen(int s, int backlog)

准备接受连接请求
  • s – Socket描述符
  • backlog – 链接请求暂存队列长度

int accept(int s, struct sockaddr *addr, int *addrlen)

接受指定Socket上的连接请求
  • s – Socket描述符
  • addr – 要接受的对方地址(IP地址和端口号)
  • addrlen – 地址长度

int connect(int sockfd, struct sockaddr *serv_sddr, int addrlen)

主动建立连接
  • sockfd – Socket描述符
  • servaddr – 通信目的地址
  • addrlen - 目的地址长度

send&recv

发送和接受数据,分别是有连接和无连接的

- int send(int s, const void *msg, int len, unsigned int flags)

  • int sendto(int s, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)

  • int recv(int s, void *buf, int len, unsigned int flags)

  • int recv(int s, void *buf, int len, unsigned int flags, struct sockaddr *from, int fromlen)


read/write

用系统文件操作进行Socket通信

- ssize_t read(int fd. void *buf, size_ count) 
- ssize_t write(int fd, const void *buf, size_t count)

posted @ 2017-11-17 14:10  姜博文  阅读(303)  评论(0编辑  收藏  举报