
网络编程
文章平均质量分 69
包含socket网络编程、网络安全、SSL/TLS、MQTT等内容
mayue_csdn
这个作者很懒,什么都没留下…
展开
-
电脑/设备网络共享给其他设备上网
网络共享原创 2024-01-12 16:17:30 · 1885 阅读 · 1 评论 -
以太网头介绍(IP头、TCP头、UDP头)
文章目录QT 常用快捷键QT 常用快捷键Ctrl + Shitf +F 快捷键方式搜索,具体搜索选项可以根据自己需要选择转载 2023-12-04 09:02:48 · 8748 阅读 · 2 评论 -
TCP三次握手和四次挥手
TCP的三次握手是为了建立可靠的连接。它的主要目的是确保双方都能够发送和接收数据,同时解决网络中可能存在的问题。首先,第一次握手是客户端向服务器发送连接请求报文段。这样做的原因是,客户端需要确保服务器可以正常工作,并且可以接受来自客户端的连接请求。然后,第二次握手是服务器向客户端发送确认消息,表示接收到了客户端的连接请求。最后,第三次握手是客户端向服务器发送确认消息,表示客户端已经收到了服务器的确认消息。这样做的目的是确保服务器能够正常接收到客户端的确认消息,以建立可靠的连接。转载 2023-11-28 14:55:26 · 577 阅读 · 0 评论 -
curl 介绍和使用
Curl是一个命令行工具和库,用于进行数据传输。它支持多种协议,如HTTP、HTTPS、FTP、SMTP等,并可以通过URL进行数据传输。Curl提供了一个简单的语法来发送HTTP请求和接收服务器响应。它可以执行各种操作,如发送GET请求、POST请求、上传文件、下载文件等。使用Curl,您可以方便地在命令行中进行HTTP请求的测试和调试。它提供了丰富的选项和参数,可以设置请求头、发送表单数据、处理Cookie、进行认证等。除了作为命令行工具,Curl还提供了一个C语言的库,可以在您的程序中使用。原创 2023-08-02 17:29:37 · 3755 阅读 · 0 评论 -
HTTP认证介绍(Basic基本认证和Digest摘要认证)和搭建windows HTTP服务器
HTTP认证是一种用于保护Web应用程序的一种身份验证机制。它通过在HTTP请求的头部添加认证信息,来验证用户的身份和权限。HTTP认证可以用于保护敏感信息,限制访问某些资源,或者在访问某些操作之前要求用户提供凭据。HTTP认证有几种不同的认证方式,包括:Basic认证:Basic认证是最常见的HTTP认证方式之一。在Basic认证中,客户端发送请求时,会在请求头中包含一个"Authorization"字段,该字段包含了经过Base64编码的用户名和密码。原创 2021-09-26 09:10:41 · 4239 阅读 · 0 评论 -
libevent、libev等网络库介绍
libevent等网络库介绍原创 2023-04-10 18:45:09 · 1646 阅读 · 0 评论 -
linux下获取本机IPv6地址、前缀、网关
获取本机IPv6网关命令:ip -6 route show dev eth0。获取本机IPv6信息命令:cat /proc/net/if_inet6。转载 2022-11-18 11:14:19 · 8466 阅读 · 0 评论 -
TCP的状态:SYN, FIN, ACK, PSH, RST, URG
原文:https://blog.youkuaiyun.com/llzhang_fly/article/details/108676070[RST, ACK]原创 2022-10-19 15:13:24 · 973 阅读 · 0 评论 -
TCP Window Full 和 TCP ZeroWindow
项目现场遇到车在地图上丢失/跳点问题,通过日志发现是OBU给车发送阻塞导致(OBU给车发数据发不动),这里OBU 是TCP Server,车和平板APP是Client。原创 2022-10-19 14:56:10 · 8105 阅读 · 0 评论 -
五层网络协议,各层功能,各层协议
协议模型转载 2022-08-28 15:12:37 · 217 阅读 · 0 评论 -
ping 包解析
ping包返回内容解析原创 2022-08-28 15:02:26 · 5339 阅读 · 1 评论 -
TCP Keepalive 学习
TCP Keepalive 学习原创 2022-06-01 16:36:51 · 222 阅读 · 0 评论 -
进程间通信机制-Unix域套接字
进程间通讯方式,Unix域套接字转载 2022-04-26 14:16:00 · 217 阅读 · 0 评论 -
socket缓冲区
socket缓冲区概念,默认缓冲区大小,系统/应用,查看/设置缓冲区大小。转载 2021-11-25 10:05:44 · 4775 阅读 · 0 评论 -
C socket client
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/socket.h>#include <unistd.h>#include <netinet/in.h>#include <arpa/inet.h>#if 0#define UDP#else#define TCP#endifint sockfd;char* I原创 2021-07-27 09:22:10 · 417 阅读 · 0 评论 -
linux socket demo
文章目录【网络编程】——linux socket demohttps://www.cnblogs.com/ngnetboy/p/5594971.html原创 2020-12-25 19:59:10 · 279 阅读 · 0 评论 -
shutdown()函数:优雅地断开TCP连接
文章目录shutdown()函数调用shutdown,但没有调用closeshutdown()函数shutdown()函数:优雅地断开TCP连接http://c.biancheng.net/view/2354.html调用shutdown,但没有调用closehttp://ddrv.cn/a/334154如果我调用shutdown(fd,SHUT_RDWR),但没有调用close(fd),会发生什么?在网络上,什么都没有.套接字中的未来recv()和read()调用将返回零,表示流结束.原创 2020-12-25 16:26:13 · 895 阅读 · 0 评论 -
AF_UNIX 本地通信
unix本地多进程通讯转载 2020-07-30 14:47:18 · 11877 阅读 · 0 评论 -
poll学习
poll方法的基本概念https://blog.youkuaiyun.com/qq_37964547/article/details/80697530poll使用示例//检测socket套接字在指定时间内是否可读/可写/异常,可阻塞调用;//和select区别:https://www.cnblogs.com/aspirant/p/9166944.html...原创 2020-07-30 14:34:42 · 129 阅读 · 0 评论 -
Linux下查看网关地址和DNS地址
文章目录查看网关地址查看DNS地址参考资料查看网关地址route -nip route shownetstat -rtraceroute www.baidu.com 100#第一行就是自己的网关more /etc/network/interfaces #【Debian/Ubuntu Linux】more /etc/sysconfig/network-scripts/ifcfg-eth0 #【Red Hat Linux】查看DNS地址cat /etc/resolv.conf转载 2020-05-09 09:58:21 · 5702 阅读 · 0 评论 -
socket调试工具
socket调试工具原创 2020-04-09 19:39:59 · 36489 阅读 · 0 评论 -
linux ip相关结构体和转换函数
1.结构体1.IPv4: struct sockaddr_in, 16个字节#include <netinet/in.h>#include <arpa/inet.h>struct in_addr { unsigned long s_addr; // 4 bytes load with inet_pton() 按照网络字节顺序存储IP地址...原创 2020-03-07 11:36:43 · 1141 阅读 · 0 评论 -
epoll检测对端关闭
转自:https://blog.youkuaiyun.com/yongqingjiao/article/details/78819791在对系统问题进行排查时,我发现了一个奇怪的现象:明明是对方断开请求,系统却报告一个查询失败的错误,但从用户角度来看请求的结果正常返回,没有任何问题。对这个现象深入分析后发现,这是一个基于 epoll 的连接池实现上的问题,或者说是特性转载 2020-03-07 11:35:18 · 2308 阅读 · 0 评论 -
getaddrinfo、getnameinfo、gethostbyname、gethostbyaddr
概要gethostbyname, gethostbyaddr是不可重入函数;已经被getaddrinfo, getnameinfo替代。介绍getaddrinfohttps://blog.youkuaiyun.com/mayue_web/article/details/98102013getnameinfohttps://blog.youkuaiyun.com/mayue_web/article/detail...原创 2019-08-01 21:23:53 · 672 阅读 · 0 评论 -
getaddrinfo使用
getaddrinfo根据域名获取IP等信息。头文件#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>函数原型int getaddrinfo(const char *node, const char *service, cons...原创 2019-08-01 21:17:40 · 8394 阅读 · 0 评论 -
getnameinfo使用
这个函数与getaddrinfo互补,它以一个套接口地址为参数,返回一个描述主机的字符串和一个描述服务的字符串。头文件#include <sys/socket.h>#include <netdb.h>函数原型int getnameinfo(const struct sockaddr *sa, socklen_t salen, ...原创 2019-08-01 20:36:07 · 10472 阅读 · 0 评论 -
gethostbyaddr根据ip地址获取主机信息
gethostbyaddr根据ip地址获取主机完整信息函数原型:#include <netdb.h>#include <sys/socket.h> /* for AF_INET */struct hostent *gethostbyaddr(const void *addr,socklen_t len, int type);参数:const void *ad...原创 2019-08-01 19:36:45 · 2543 阅读 · 1 评论 -
Linux IO模型
1、IOIO (Input/Output,输入/输出)即数据的读取(接收)或写入(发送)操作,通常用户进程中的一个完整IO分为两阶段:用户进程空间<–>内核空间、内核空间<–>设备空间(磁盘、网络等)。IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。LINUX中进程无法直接操作I/O设备,其必须通过系统调用请求kernel来协助完成I/O动作;内...转载 2018-09-28 20:57:31 · 191 阅读 · 1 评论 -
tcp_socket绑定(bind)失败---Address already is use原因
转载自:https://blog.youkuaiyun.com/fern_girl/article/details/73657825我们前面介绍了三种tcp_server编写多进程多线程服务器编写,在测试这三个servet我们遇到一个问题,就是当我们绑定一个端口号后,ctrl-z结束掉server服务器,此时再次绑定该端口号会出现这样的出错提示:显示端口号正在被使用,可是我们已经关闭了服务器了,为什么不...转载 2019-04-16 19:38:54 · 2732 阅读 · 0 评论 -
select函数的使用
select函数的作用:select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet()、accept()、recv()或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使...原创 2019-04-04 14:04:27 · 10042 阅读 · 1 评论 -
socket()函数介绍
函数原型socket()函数的原型如下,这个函数建立一个协议族为domain、协议类型为type、协议编号为protocol的套接字文件描述符。如果函数调用成功,会返回一个标识这个套接字的文件描述符,失败的时候返回-1。#include<sys/types.h>#include<sys/socket.h>int socket(int domain, int typ...原创 2019-03-30 15:28:52 · 994 阅读 · 0 评论 -
read和recv等函数的区别
1 recv和sendrecv和send函数提供了和read和write差不多的功能.不过它们提供 了第四个参数来控制读写操作.int recv(int sockfd,void *buf,int len,int flags);int send(int sockfd,void *buf,int len,int flags);前面的三个参数和read,write一样,第四个参数可以是0或者是...转载 2019-03-27 20:45:50 · 1569 阅读 · 0 评论 -
TCP三次握手与四次挥手及Socket编写
TCP三次握手与四次挥手及Socket编写http://www.360doc.com/content/12/1204/10/9220372_252012979.shtmlhttps://www.cnblogs.com/tomato0906/articles/4696932.html1.三次握手原理:TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接...转载 2019-03-27 20:24:12 · 685 阅读 · 0 评论 -
readv和writev函数
readv和write使用转载 2019-03-19 20:35:23 · 1803 阅读 · 0 评论 -
Epoll的使用详解(转)
转自:https://www.jianshu.com/p/ee381d365a291.Epoll简介EPOLL 的API用来执行类似poll()的任务。能够用于检测在多个文件描述符中任何IO可用的情况。Epoll API可以用于边缘触发(edge-triggered)和水平触发(level-triggered), 同时epoll可以检测更多的文件描述符。以下的系统调用函数提供了创建和管理epo...转载 2019-03-13 19:42:49 · 460 阅读 · 1 评论 -
socket关闭close和shutdown
转载:http://blog.sina.com.cn/s/blog_693de6100101eusw.html概述socket关闭有2个方法close,shutdown ,2个方法的用法需要注意 ,他们之间的区别:close-----关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接,能读或写这个socket idshutdown–则破坏了s...转载 2019-02-22 19:28:34 · 5810 阅读 · 0 评论 -
setsockopt :SO_LINGER 选项设置
setsockopt 设置 SO_LINGER 选项此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。SO_LINGER选项用来改变此缺省设置。使用如下结构:struct linger { int l_onoff; /* 0 = off, nozero = on */ ...转载 2018-11-06 21:07:23 · 453 阅读 · 0 评论 -
epoll使用
1、epoll是什么在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX s...转载 2018-09-29 20:28:20 · 212 阅读 · 0 评论 -
socket阻塞和非阻塞有哪些影响
socket阻塞和非阻塞有哪些不同原创 2018-09-27 20:45:22 · 33112 阅读 · 4 评论