嵌入式学习DAY32---Linux软件编程---网络编程

目录

一、抓包软件的使用

1.1.wireshark

         1.作用

1.2.UDP包头

二、TCP编程

2.1.发送信息

1.创建套接字

2.配置目的对象信息

3.将自己的端口和ip和套接字绑定

4.建立连接

5.发消息

6.关闭套接字

2.2.接收消息

1.创建套接字

2.配置自己的信息并将自己的端口和ip和套接字绑定

3.检测连接

4.处理链接

5.接收消息

6.关闭连接和套接字

三、总结


一、抓包软件的使用

1.1.wireshark 

        1.作用

                来检测UDP传输出现失败情况,到底时发送端出问题了,还是接收端出问题了;

                如果可以抓取到发送端的端口号,则接收端出问题了;

                如果可以抓取到接送段的端口号,则发送端出问题了;

1.2.UDP包头

                                                

二、TCP编程

2.1.发送信息

1.创建套接字

函数接口:socket

2.配置目的对象信息

3.将自己的端口和ip和套接字绑定

函数接口:bind

发送端中可以绑定,也可以不绑定,不绑定默认随机端口号;

4.建立连接

函数接口:connect

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
          功能:
            向接收方发起连接请求
          参数:
            sockfd:套接字文件描述符
            addr:接收方的IP地址和端口号
            addrlen:接收方的IP地址和端口号的大小
          返回值:
            成功返回0 
            失败返回-1 

5.发消息

函数接口:send

ssize_t send(int sockfd, const void *buf, size_t len, int flags);
          功能:
            向接收方发送数据
          参数:
            sockfd:套接字文件描述符
            buf:要发送的数据的首地址 
            len:要发送的数据的长度
            flags:标志位 
          返回值:
            成功返回发送字节数
            失败返回-1 

6.关闭套接字

函数接口:close

2.2.接收消息

1.创建套接字

函数接口:socket

2.配置自己的信息并将自己的端口和ip和套接字绑定

函数接口:bind

3.检测连接

函数接口:listen

int listen(int sockfd, int backlog);
        功能:
            监听发送三次握手连接的套接字,并放入等到处理队列中
        参数:
            sockfd:套接字文件描述符
            backlog:等待队列的大小(最多存放尚未被处理的三次握手请求的个数)
        返回值:
            成功返回0 
            失败返回-1 

4.处理链接

函数接口:accept 

注意:若连接队列没有连接时,accept会阻塞等待。

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

5.接收消息

函数接口:recv

 ssize_t recv(int sockfd, void *buf, size_t len, int flags);
          功能:
            接收发送方发送的数据
          参数:
            sockfd:套接字文件描述符
            buf:接收数据的缓冲区首地址
            len:接收数据的缓冲区的大小
            flags:标志位 
          返回值:
            成功返回实际接收字节数
            失败返回-1 
            对方关闭返回0 

6.关闭连接和套接字

函数接口:close

三、总结

        2024年8月16日,学习的32天。今天算是将网络编程学完了。代码量很大,很难消化。

        加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值