网络编程
潘多拉的面
这个作者很懒,什么都没留下…
展开
-
原始套接字
原始套接字的奥义在与原始原始套接字和socket的总结1、create socketsocket(AF_INET,SOCK_STREAM,IPPROTO_TCP)socket(AF_INET,SOCK_DGRAW,IPPROTO_UDP)2、sendsendto(sd,buffer,BUFFSIZ,0(SOCKADDR*)&addrServ,sizeof(SOCKADDR));//UDPsend(sd,buffer,BUFFSIZ,0);tcp3、recvrecvfrom原创 2022-01-26 15:37:22 · 1610 阅读 · 0 评论 -
网络排错常用指令
ip命令:linux的ip命令和ifconfig类似,ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。linux系统提供的iproute2工具用于替代一些常用的net-tools命令。用来显示或操纵linux主主机的路由、网络设备、策略路由和隧道ip linkip -s addr show eth1:ifconfig:参数说明:mtu:最大的传输单元inet:ipv4地址netmask:子网的掩码broadcast:广..原创 2021-09-17 13:35:38 · 1633 阅读 · 0 评论 -
线程间通信
#include <stdio.h>#include <stdlib.h>#include <pthread.h>int global = 0;void *add(){ int i = 5000; while(i--) { int tmp = global; printf("global = %d\n",global); global = tmp + 1; }}int main(){ pthread_t t1,t2; pth.原创 2021-09-16 17:21:25 · 87 阅读 · 1 评论 -
网络相关博文
tcp哪些事:https://www.iteye.com/blog/elf8848-2089414原创 2021-09-02 09:41:27 · 61 阅读 · 0 评论 -
服务器封装
1、客户端和服务端的封装class TCPSocket{public: TCPSocket(); TCPSocket(int fd) { m_fd = fd; } ~TCPSocket(); int connectToHost(char *serverIP,unsigned shot port) { m_fd = socket(AF_INET,SOCK_STREAM,0); connect(m_fd,(struct sockaddr*)&原创 2021-08-26 23:49:15 · 270 阅读 · 0 评论 -
getaddrinfo(),freeaddrinfo()的一种使用
通过函数getaddrinfo()函数将域名转换为对应的IPstruct addrinfo{ int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_socktype; /* Socket type. */ int ai_protocol; /*转载 2021-08-17 18:41:41 · 843 阅读 · 0 评论 -
select监视键盘输入
select监视键盘#include <sys/time.h>#include <stdio.h>#include <sys/types.h>#include <fcntl.h>#include <assert.h>int main(){ int keyboard; int ret,i; char c; fd_set readfd; struct timeval timeout; keyboard = open("/.原创 2021-08-16 11:29:01 · 492 阅读 · 0 评论 -
select模型2
#include <stdio.h>#include <sys/socket.h>#include <sys/un.h>#include <strings.h>#include <string.h>#include <unistd.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/wait.h>#include.原创 2021-08-16 00:08:05 · 88 阅读 · 0 评论 -
select模型
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>#include <sys/time.h>#include <sys/select.h>#define BUF_SIZE 100;void error_h.原创 2021-08-15 17:14:45 · 124 阅读 · 0 评论 -
select和有名管道的配合使用
select函数对数据结构fd_set进行操作,fd_set是一个bitmap,该集合由打开的文件描述符构成。对于管道而言,select是通过检查管道是否阻塞,来进行监听的。只要所监听的管道非阻塞,select就能立马获知,并将其在fd_set中的相应为置1。管道非阻塞只有两种情况,一种是客户端向管道写东西,另一种是客户端将管道关闭(写端)。当然,对于非阻塞的情况,select能监听到,但它并不会知道非阻塞是因为客户端关闭管道还是客户端向管道写消息。这需要我们自己来判断。通常是通过read系统调用的返回转载 2021-08-14 22:16:55 · 1187 阅读 · 0 评论 -
Linux下Sniffer程序的实现(PF_PACKET,SOCK_RAW,recvfrom,htons(ETH_P_IP),setsockopt(filter))
转自:https://blog.csdn.net/cos_sin_tan/article/details/8131024重点:ioctl设置网卡混杂模式,setsockopt设置recvfrom过滤剩下的IP报文的进一步具体过滤(BPF格式)作者:Gianluca Insolvibile整理:Seal(永远的FLASH)日期:2004-11-05嗅探——Sniffer技术是网络安全领域里一项非常重要的技术!对于“Hacker”来说,他们可以以非常隐蔽的方式得到网络中传输的大量的敏感信息,如Te转载 2021-07-16 16:28:56 · 968 阅读 · 0 评论 -
linux服务器编程基础
https://github.com/sogou/workflow/issues/170https://www.zhihu.com/column/c_127088776https://github.com/sogou/workflow你要搞后端,huh。多进程协程+多线程开发模型。tcp/udp/http网络协议。select/poll/epoll非阻塞io调用。fp,vfs,fs多少得了解点吧。unix ipc全都得会。无缓存的文件流io,grpc,erc。。再算上redis,mysq原创 2021-07-01 15:58:39 · 385 阅读 · 0 评论 -
父子间进程
%23include <stdio.h>%0a%23include <unistd.h>%0a%0a%0aint main%28int argc,char argv[]%29%0a{%0a%09pid_t pid = fork%28%29%3b%0a%0a%09if%28pid == 0%29//if child process%0a%09{%0a%09%09puts%28"hi , i am a child process"%29%3b%0a%09}else{%0a%09%09pr原创 2021-06-04 14:31:28 · 65 阅读 · 0 评论 -
常见tcp/ip协议结构定义
#ifndef PROTO_H#define PROTO_H/*TCP/IP 协议类型*/#define IPPROTO_IP 0 // IP#define IPPROTO_ICMP 1 // ICMP#define IPPROTO_TCP 6 // TCP#define IPPROTO_UDP 17 // UDP/*常见端口*/原创 2021-06-01 16:47:18 · 331 阅读 · 3 评论 -
网笔---
protocol:协议就是为了完成数据交换而定好的约定int socket(int domain,int type,int protocol)协议族:Protocol Family套接字中实际采用的最终协议信息是通过socket函数的第三个参数传递的。在指定的协议族范围内通过第一个参数决定三个参数套接字类型(Type)1、面向连接的套接字(SOCK_STREAM).传输过程中数据不会消失.按序传输数据.传输的数据不存在数据边界(Boundary)收发数据的套接字内部有缓冲(buffer原创 2021-05-20 20:26:28 · 74 阅读 · 0 评论 -
代码练习之网络编程
1原创 2021-05-20 16:20:00 · 156 阅读 · 1 评论 -
最简单的socket创建程序
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>void error_handing(char *message);int main(int argc,char *argv[]){ int serv_sock; int clnt_sock; strcut socket_in .原创 2021-05-18 14:50:38 · 345 阅读 · 0 评论