美文网首页
socket 网络编程

socket 网络编程

作者: cendechen | 来源:发表于2018-08-19 13:23 被阅读0次

API整理

int socket(int domain, int type, int protocol)
参数 类型 说明
domain 确定套接字的通信领域(domain) IPV4(AF_INET),IPv6(AF_INET6)
type 决定套接字数据传输的意义 SOCK_STREAM可靠,SOCK_DGRAM
protocol 指定端到端的协议 IPPROT_TCP.IPPROTO_UDP

链接

int connect(int socket, const struct sockaddr *foreignAddress, socklen_t addressLength)

绑定端口

int bind(int socket, struct sockaddr * localAddress, socklen_t addressSize)

处理进入的连接

int listen(int socket, int queueLimit)

接受同意的accept

int accept(int socket, struct sockaddr *clientAddress, socklen_t * addressLength)

发送

ssize_t send(int socket, const void *msg, size_t msgLength, int flags)
ssize_t recv(int socket, void *rcvBuffer, size_t bufferLength, int flags)

通用地址

struct sockaddr {
  sa_family_t sa_family;
  char sa_data[14];
}

ipv4 地址

struct in_addr {
  unit32_t s_addr; 
}
struct sockaddr_in {
  sa_family_t sin_family;
  in_port_t sin_port;
  struct in_addr sin_addr;
  char sin_zero[8];
}

ipv6的地址

struct in_addr {
 unit32_t s_addr[16];
}
struct sockaddr_in6 {
   sa_family_t sin6_family;
  in_port_t sin6_port;
  unit32_t sin6_flowinfo;
  struct in6_addr sin6_addr;
  uint32_t sin6_scope_id;
}

绑定地址时,用sockaddr 强制把 ipv4 和ipv6 强制转化

2进制/ 字符串地址转换

int inet_pton(int addressFamily, const char *src, void *dst)
// addressFamily 地址协议组
// src 需要转化的地址
// dst 储存转化成功的地址

const char * inet_ntop(int addressFamily, const void *src, char *dst, socklen_t dstBytes)
// addressFamily 地址协议组
// src 指向包含要转化的数字地址的内存块的第一个字节
// dst 参数包含调用者的空间中分配的缓冲区,把得到的字符串复制到其中

相关文章

  • 许世伟的Go语言基础 第五章总结

    第5章 网络编程 5.1 socket编程 以往socket编程: 建立socket:使用socket()函数。 ...

  • 网络编程

    python学习笔记-网络编程 socket编程: socket()函数:socket.socket([famil...

  • 网络编程

    网络 Socket 基于TCP协议的Socket编程 基于UDP协议的Socket编程

  • 2018-09-12 day18-网络编程和http请求

    网络编程 socket 网络编程就是socket编程,socket就是套接字,就是进行数据通信的两端(服务器和客户...

  • 网络基础介绍

    网络编程的两种 TCP socket编程,是网络编程的主流。之所以叫Tcp socket编程,是因为底层是基于Tc...

  • Go语言的Socket编程

    我们在日常开发当中,几乎所有网络编程都是Socket编程,因为大部分底层网络的编程都离不开Socket编程。 什么...

  • 动脑学院架构篇-Java Socket编程基础及深入讲解

    【Socket】Java Socket编程基础及深入讲解 Socket是Java网络编程的基础,了解还是有好处的,...

  • Python网络编程

    Python网络编程 1、socket编程, 类:socket 1.server端 # socket第一个参数:地...

  • TCP通信网络编程

    1. Socket网络编程 Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链...

  • Netty

    一、网络编程基础原理 1 网络编程(Socket)概念 首先注意,Socket不是Java中独有的概念,而是一个语...

网友评论

      本文标题:socket 网络编程

      本文链接:https://www.haomeiwen.com/subject/mfizbftx.html