网络编程
网络编程
我是鶸
芜湖!起飞!
展开
-
IPSec之IKEv2协议详解
IKEv2简介IKEv2介绍:定义在RFC4306 ,更新与 RFC 5996. 不兼容IKEv1,IKEv1不支持认证,IKEv2支持认证,EAP。 支持NAT穿越。 IKEv2支持私密性、完整性、源认证。 工作在UDP 的 500 /4500端口。NAT-T用的是UDP4500端口。IKE的安全机制: 身份认证 确认通信算双方的身份(对等体的IP地址或者名称),包括: 预共享密钥PSK(pre-shared key)认证。 数字签名RSA(rsa-signature)转载 2021-09-13 19:31:39 · 18709 阅读 · 1 评论 -
结构体的字节对齐和位域操作
取消字节对齐在结构体声明当中,加上__attribute__ ((__packed__))关键字,可以让结构体,按照紧凑排列的方式来占用内存,结构体的长度,就是各个变量长度的和。#include<stdio.h>#include <stdint.h>struct node1{ uint8_t a; uint16_t b; uint32_t c;}__attribute__ ((__packed__));struct node2{ uint8_t a;原创 2021-08-23 21:42:18 · 196 阅读 · 0 评论 -
并发服务器
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<signal.h>#include<sys/wait.h>#include<arpa/inet.h>#include<sys/socket.h> #define BUF_SIZE 1024 void error_handling(c.原创 2021-08-08 21:24:48 · 87 阅读 · 0 评论 -
多进程服务器端
1.调用fork函数创建进程fork函数:#include<unistd.h>pid_t fork(void);//成功时返回进程ID,失败时返回-1fork函数将创建进程副本,两个进程将执行fork函数调用后的语句,且之后的程序要根据fork函数的返回值加以区分。父进程(原进程):fork函数返回子进程ID子进程(进程副本):fork函数返回0fork函数调用后分成了完全不同的进程,只是两者共享同一份代码,父子进程拥有完全独立的内存结构,接下来是一个示例。原创 2021-08-08 20:45:02 · 75 阅读 · 0 评论 -
基于TCP的回声服务器端/客户端
服务端#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>#define BUF_SIZE 1024void error_handling(char *message);int main(int argc,char *argv[]){原创 2021-08-03 14:09:13 · 172 阅读 · 0 评论 -
基于UDP的回声服务器端/客户端
UDP无需经过连接过程,不必调用listen函数和accept函数。UDP中只有创建套接字的过错和数据交换的过程。UDP服务器端和客户端均只需1个套接字。接下来介绍填写地址并传输数据时调用的UDP相关函数:sendto和recvfrom源代码:服务端#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet原创 2021-08-03 13:35:01 · 335 阅读 · 1 评论 -
socket编程:利用域名获取ip地址
IP地址比域名发生变更的概率更高,一旦注册域名可能永久不变,因此利用域名编写程序会好一些。这样,每次运行程序时根据域名获取ip地址,再接入服务器,这样程序就不会依赖于服务器ip地址了。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<arpa/inet.h>#include<netdb.h>void error_handling(char *messag原创 2021-08-02 22:33:39 · 1345 阅读 · 0 评论 -
实现基于TCP的服务端/客户端
基础的socket练习,在linux环境下实现基于TCP的服务端/客户端。服务端源码hello_server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>//错误处理函数的声明void error_handling(char原创 2021-07-30 15:23:21 · 149 阅读 · 0 评论