黑马程序员|网络编程笔记1

网络字节序:

htonl:本地->网络(IP)

htons:本地->网络(PORT)

ntohl:网络->本地(IP)

ntohs:网络->本地(PORT)

IP地址转换:

int inet_pton(int af,const char *src,void *dst)将本地转网络

  • af:协议簇:AF_INET、AF_INET6
  • src:传入,IP地址(点分十进制)
  • dst:传出,转换后的网络字节序的IP地址。
  • 成功返回1
  • 异常返回0
  • 失败返回-1

const char* inet_ntop(int af,const void *src,char*dst,socklen_t size)将网络转本地

socket:

int socket(int domain,int type,int protocol);

  • domain:AF_INET、AF_INET6
  • type:SOCK_STREAM、SOCK_DGRAM
  • protocol:0(根据type去选择协议,stream是tcp,dgram是udp)
  • 成功返回,新套接字所对应字节描述符。

BIND:

int bind(int sockfd,const struct sockaddr*addr,socklen_t addrlen);给socket绑定一个地址(IP+port)

  • sockfd函数返回值

    • struct sockaddr_in addr;
    • addr.sin_family=AF_INET;
    • addr.sin_addr.s_addr=htonl(INADDR_ANY);

    addr:(struct sockaddr*)&addr

    addrlen:sizeof(addr)地址结构大小

  • 成功:0

  • 失败:-1

Listen

int liisten(int sockfd,int backlog);设置可同时连接的最大数量

  • backlog:可同时连接的最大数量
  • 成功:0
  • 失败:-1

accept

int accept(int sockfd,struct sockaddr*addr,socklen_t*addrlen);阻塞等待

  • sockfd:socket的返回值

  • addr:传出参数。成功与服务器建立连接的那个客户端的地址结构。

  • addrlen:传入传出。入:addr的大小。出:客户端addr的实际大小,所以需要取地址。

  • 成功返回能与服务器进行数据通信的socket对应的文件描述符

  • 失败返回-1,errno。

connect

int connect(int sockfd,const struct sockaddr*addr,socklen_t addrlen使用现有的socket与服务器连接

  • sockfd:socket返回值
  • addr:服务器地址结构
  • addrlen:服务器结构的大小
  • 失败返回-1,errno。
  • 如果不采用bind绑定客户端地址结构,采用隐式绑定。

//图床坏了呜呜呜,算了这个以后多敲就可熟悉了。。。

mss最大报文长度

滑动窗口机制

  • 来指定缓冲区大小的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值