网络编程
文章平均质量分 61
小菜鸡加油
菜鸡
什么都能折磨
展开
-
网络编程:sockaddr统一结构
sockaddr结构从网络编程的API中我们看到一个需要强转的结构体(struct sockaddr),为什么要强转成这个结构体呢?先说结论,sockaddr是统一的接口,只用一个接口完成不同套接字(比如IPV4,IPV6)之间的通信问题。socket API是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4、IPv6,以及后面要讲的UNIX Domain Socket。然而,各种网络协议的地址格式并不相同。在C语言中如果直接处理就要多出重复的接口,设计成统一的目的是为了设计尽量少的接口,原创 2022-03-10 20:25:20 · 3623 阅读 · 0 评论 -
网络编程:epoll的demo
EpollServer.hpp#pragma once#include "tcpServer.hpp"#include <sys/epoll.h>#define NUM 20#define SIZE 64#define DFL -1class Backage{ public: Backage(int fd , int pos = 0) :_fd(fd) ,_pos(pos) { memset(_buf,0,原创 2022-03-01 19:55:04 · 1234 阅读 · 1 评论 -
网络编程:PollServer的demo
tcpServer.hpp#pragma once#include<iostream>#include<string>#include<cstdio>#include<cstring>#include<string.h>#include<typeinfo>#include<exception>#include<stdexcept>#include<arpa/inet.h>#in原创 2022-02-19 11:45:22 · 566 阅读 · 1 评论 -
网络编程:select通信demo
tcpServer#pragma once#include<iostream>#include<string>#include<cstdio>#include<cstring>#include<string.h>#include<typeinfo>#include<exception>#include<stdexcept>#include<arpa/inet.h>#includ原创 2022-02-19 09:40:12 · 246 阅读 · 0 评论 -
传输层——UDP协议
文章目录传输层再谈端口号端口号划分认识及查看知名端口号linux下网络命令**netstat(查看当前主机的连接情况,高频重要)**pidof(查看服务器的进程id)UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议底层实现的结构传输层这部分由网络基础(一)可以知道是由操作系统实现的内核级协议再谈端口号端口号(Port)标识了一个主机上进行通信的不同的应用程序。向上交付的时候根据TCP/UDP首都中的端口号进行分用。那么端口号是怎么找到进程原创 2022-02-09 20:45:08 · 2107 阅读 · 0 评论 -
HTTP与HTTPS的对比
文章目录结构对比加密过程中间信息篡改验证远端服务器身份认证总结结构对比http:80https:443加密过程对称加密的一种典型方式比如异或加密。但是问题在于server端如何获取密钥,密钥的安全无法保证,密钥没有加密存在被劫持可能。解决方法是先采用非对称加密。https密钥协商过程:server->公钥->client对称密钥。用公钥加密->server->解密->server拿到对称密钥。至此,双方通信采用对称密钥进行。为什么不直接采用非对称加密进行传输呢原创 2022-02-09 20:41:55 · 2004 阅读 · 0 评论 -
网络基础(二)
讲述具体的各层协议,自顶向下讲述。文章目录应用层再谈协议网络版计算器概念代码实现小结传输层抓包——tcpdumpHTTP协议认识URLurlencode和urldecodeHTTP协议格式基本特征无连接无状态简单快速特征小结HTTP构成HTTP抓包工具——Fiddler简单原理抓取https协议GET方法请求响应PUT方法请求响应总结telnet直接请求HTTP爬虫的简单原理HTTP的方法HTTP的状态码HTTP常见Header常见HeaderCookieSession应用层我们程序员写的满足日常需求原创 2022-02-08 16:36:48 · 368 阅读 · 0 评论 -
网络编程套接字
网络编程套接字文章目录网络编程套接字预备知识理解源IP地址和目的IP地址认识端口号理解“端口号”和"进程ID"理解源端口号和目的端口号认识TCP协议认识UDP协议网络字节序网络字节序的规则htonl和ntohl的大小端转换socket编程接口socket常见API理解socketbindinet_addr和inet_ntoa(点分十进制的转换)recvfrom(udp)sendto(udp)INADDR_ANYlisten(tcp)accpet(tcp)recv(tcp)send(tcp)connect(原创 2022-02-07 14:07:09 · 1626 阅读 · 0 评论 -
demo:线程池+tcp
pthreadPool.hpp#pragma once#include<pthread.h>#include<queue>#include<iostream>#include<string>#include<cstring>#include<unistd.h>#include<sys/wait.h>#include<sys/socket.h>#include<arpa/inet.h>原创 2022-02-06 23:55:48 · 546 阅读 · 1 评论 -
网络基础(一)
网络基础(一)文章目录网络基础(一)计算机网络背景网络和系统的关系网络发展认识“协议”网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程网络传输流程图同一个网段内的两台主机传输跨网段的主机的传输数据包封装和分用网络中的地址管理IP地址认识MAC地址linux下查看网络信息总结计算机网络背景学习系统不能忽略硬件,学习网络也不能忽略硬件。网络和系统的关系网络发展最开始只有一台计算机处理人算力不足的问题。独立模式:计算机之间相互独立不同人在不同单位所承担的分工是原创 2022-02-03 22:22:43 · 3774 阅读 · 6 评论