tcp协议网络编程

1.Wireshark抓包工具:
    1.sudo apt-get install wireshark
    2.sudo wireshark
    3.选择抓取数据包的网卡
    4.执行网络程序实现数据通信

2.UDP包头:
    8个字节
    1.源端口(2个字节)
    2.目的端口(2个字节)
    3.长度(2个字节)
    4.校验码(2个字节)

3.MTU:
    最大传输单元
    UDP MTU 最大为:1500
    UDP一次发送的数据最大不要超过1500个

TCP编程:
    1.通信流程
      发送端:                       接收端:
      socket                        socket 
                                    bind 
                                    listen
      connect                       accept 
      send                          recv 
      close                         close 

    2.函数接口:
      listen 
      int listen(int sockfd, int backlog);
      功能:
        监听三次握手连接请求
      参数:
        sockfd:套接字文件描述符
        backlog:尚未处理的连接请求最大等待个数
      返回值:
        成功返回0 
        失败返回-1 

      注意:
        1.listen不会阻塞

    3.accept
      int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
      功能:
        处理等待队列中的第一个请求
      参数:
        sockfd:套接字文件描述符
        addr:存放请求方地址信息空间首地址
        addrlen:请求方地址信息长度
      返回值:
        成功返回新的文件描述符
        失败返回-1 

    4.recv 
      ssize_t recv(int sockfd, void *buf, size_t len, int flags);
      功能:
        接收数据
      参数:
        sockfd:套接字文件描述符
        buf:存放接收到的数据空间首地址
        len:最大接收字节数
        flags:属性 默认为0 
      返回值:
        成功返回实际接收到的字节数
        失败返回-1 
        如果对方退出,recv返回0 

    5.send 
      ssize_t send(int sockfd, const void *buf, size_t len, int flags);
      功能:
        发送数据
      参数:
        sockfd:套接字文件描述符 
        buf:发送数据空间首地址
        len:发送字节数
        flags:属性默认为0 
      返回值:
        成功返回实际发送字节数
        失败返回-1 

    6.connect 
      int connect(int sockfd, const struct sockaddr *addr,
                   socklen_t addrlen);
      功能:
        发送链接请求
      参数:
        sockfd:套接字文件描述符
        addr:对方的IP地址信息
        addrlen:IP地址的大小
      返回值:
        成功返回0 
        失败返回-1 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值