tcp udp数据报定义结构体

文章链接:https://codemouse.online/archives/2020-06-30-21-08-22tcpudp数据报定义结构体由于结构体写在结构体里面容易出现结构体内存对齐问题,需要将对齐值改为1,防止出错。#pragmapack(1)//设置对齐数udp报文头定义:structu
c/c++ 网络编程 计算机网络 2020年06月30日 172次浏览

高性能服务器C10K到C1000K到C10M的转变路程

服务器c10K->c1000K->c10M的转变路程网络五元组五元组标识一个网络fd的唯一网络fd-->五元组(sip,dip,sport,dport,proto)c1000k服务器的并发量条件(百万并发)服务器能够承载的客户端数量。(最基本条件)5w以上的应供应操作。(也就是客户
网络编程 linux 2020年06月26日 199次浏览

给服务端一个shell控制端

连接服务器,并给服务端一个shellvoidstart_reverse_shell(char*bd_ip,unsignedshortintbd_port){intsd;structsockaddr_inserv_addr;structhostent*server;sd=socket(AF_INET,
c/c++ shell 网络编程 linux 2020年04月02日 229次浏览

如何开启原始套接字并发送自定义ping包(icmp)

开启套接字structprotoent*protocol;if((protocol=getprotobyname("icmp"))==NULL){perror("getprotobyname");exit(1);}if((sockfd=socket(AF_IN
c/c++ 网络编程 linux 2020年04月02日 233次浏览

gethostbyname获取主机信息

获取主机信息#include<netdb.h>externinth_errno;structhostent*gethostbyname(constchar*name);#include<sys/socket.h>/*forAF_INET*/structhostent*geth
c/c++ 网络编程 linux 2020年04月02日 212次浏览

getprotobyname和getprotobynumber获取协议名字和协议号

获取协议名字和协议号#include<netdb.h>structprotoent*getprotoent(void);//获取下一条协议structprotoent*getprotobyname(constchar*name);//通过名字获取structprotoent*getpro
c/c++ 网络编程 linux 2020年04月02日 199次浏览

AIO编程方法

AIO编程方法对象structaiocb{/*下面所有字段依赖于具体实现*/intaio_fildes;/*文件描述符*/off_taio_offset;/*文件偏移*/volatilevoid*aio_buf;/*缓冲区地址*/size_taio_nbytes;/*传输的数据长度*/intaio_
c/c++ 网络编程 linux 2020年03月27日 220次浏览

通过监听的fd获取对端地址

通过监听的fd获取对端地址voidgetipAddr(charipbuf[],intfd){structsockaddr_storageaddr;socklen_tlen=sizeof(addr);//获取数据放到sockaddr结构体printf("%d",getpeernam
c/c++ 网络编程 2020年03月16日 212次浏览

分包黏包问题解决方案

在接收数据的时候,有可能没有一次接收结束,产生黏包,所有要做重复接收.intrecvPacket(intepollfd,char*buf){charpacket[MAXBUFLEN]={0};char*packetPtr=packet;intnBytesNeed=MAXBUFLEN;intnByte
c/c++ 网络编程 2020年03月13日 185次浏览

网络编程之select

函数说明intFD_ISSET(intfd,fd_set*set);判断该fd是否在集合内voidFD_SET(intfd,fd_set*set);将fd添加到集合中voidFD_ZERO(fd_set*set);将集合清空使用流程第一步socket通用流程,先绑定一个fd,做好服务器监听intso
c/c++ 网络编程 2020年03月10日 232次浏览