Linux网络编程
文章平均质量分 90
.
R-QWERT
这个作者很懒,什么都没留下…
展开
-
Linux网络编程:getaddrinfo return system error导致设备无法连接外网,DNS解析失败
一、现象:最近在设备上开发新功能,使用一份物联网设备端的SDK,出现了一个问题,设备从一个WiFi A切换到另一个WiFi B,无法连接外网,导致和服务器的通讯失败1、查看串口信息后发现异常时getaddrinfo返回system error;2、问题出现时,在设备上使用ping命令,能够ping通外网;3、每次从WiFi A切换到WiFi B都会出现相同的问题;4、将设备从WiFi A切换到WiFi C,能够正常连接外网;5、设备已经量产多年,以前未曾出现过这种问题;转载 2023-03-05 12:20:26 · 647 阅读 · 0 评论 -
Linux网络编程:setsockopt函数功能及参数详解
Socket描述符选项[SOL_SOCKET] #include <sys/socket.h> int setsockopt( int socket, int level, int option_name,const void *option_value, size_t ,ption_len); 第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。 optio转载 2021-08-30 22:59:00 · 6965 阅读 · 0 评论 -
Linux网络编程:UDP单播、广播和多播
使用UDP协议进行信息的传输之前不需要建立连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。 单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。转载 2021-07-08 19:38:50 · 1290 阅读 · 0 评论 -
Linux网络编程:基于TCP的socket传输文件示例
服务器端#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <stdio.h>#include <signal.h>原创 2020-05-28 09:41:53 · 397 阅读 · 0 评论 -
Linux网络编程:socket编程(TCP、UDP)
TCPTCP是面向连接的字节流传输控制协议(面向连接就是互通之前先建立起连接),有验证重发机制,不会出现丢包或乱序;建立连接时有三次握手,取消连接时有四次挥手。三次握手就是两者进行一些约定,对格式的空间等信息进行传递。在用户层中提供的是数据,然后经过TCP协议添加了首部成为TCP段,再经过IP协议层添加了IP首部成为IP数据报,再到硬件驱动层添加以太网首部和以太网尾部成为以太网帧,TCP 报文头里面的序号能使 TCP 的数据按顺序到达;有累计确认及超时重传机制(时间加倍)。TCP主要传输重要数据(如文件)原创 2020-05-26 16:25:08 · 274 阅读 · 0 评论