网络编程
TCP/IP协议及套接字使用
星空那么亮
这个作者很懒,什么都没留下…
展开
-
网络虚拟化之network namespace
新增一个namspace:在这里插入代码片sudo ip netns add netns1查看是否创建成功ip netns listsudo ls /var/run/netns/netns1 查看namespace中的网络设备sudo ip netns exec netns1 ip link list删除namespacesudo ip netns delete netns1增加一个自定义的namspace并测试回环网卡网络:在这里插入代码片 sudo ip netns add原创 2020-09-12 14:30:39 · 304 阅读 · 0 评论 -
epoll实现服务器
使用epoll实现简单的服务器,熟悉下epoll接口的使用,不作详细的原理分析。在这里插入代码片#include <sys/epoll.h>int epoll_create(int size);int epoll_create1(int flags);int epoll_ctl(int epds, int op, int fd, struct epoll_event *event);EPOLL_CTL_ADDRegister the target file descriptor原创 2020-08-23 16:49:58 · 467 阅读 · 0 评论 -
poll实现网络服务器
poll的使用和select类似,select使用一组宏来表示处理描述符集合,而poll使用结构体。在这里插入代码片#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd { int fd; //文件描述符 short events;//请求的事件 short revents;//返回的事件}在events置位:POLLIN 普通或优先级带原创 2020-08-23 10:37:09 · 260 阅读 · 0 评论 -
select实现网络服务器
select是实现IO多路复用的一种方式,可以在同一个进程或者线程中同时监控多个文件描述符的读写状态,程序会停在select这里,直到有可以读写的文件描述符状态发生改变。select使得不用阻塞在某一个IO操作上。在这里插入代码片头文件#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds,原创 2020-08-23 09:48:05 · 263 阅读 · 0 评论 -
TCP客户端程序
tcp客户端测试程序:./client_test 127.0.0.1 9000 1 1 5在这里插入代码片#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <errno.h>#include "client_test.h"int tcp_connect(const char *addr, const char *port) { struct sockad原创 2020-08-18 20:44:17 · 205 阅读 · 0 评论 -
TCP服务器
本次实现一个简单的服务器来了解socket,bind, listen等函数,服务器的主要功能是收到客户端的消息后,原封不动的返回给客户端。在这里插入代码片#include <sys/socket.h>#include <netinet/in.h>#include <time.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "mytcp.原创 2020-08-16 10:45:44 · 171 阅读 · 0 评论 -
TCP基本套接字
TCP客户端和服务器编程离不开基本的套接字函数,学习TCP基本套接字很重要,下面学习一下基本的套接字接口,并实现一个简单的客户端和服务器程序。socket函数为了执行网络IO,一个进程要做的第一件事情就是要创建套接字。在这里插入代码片#include <sys/socket.h>int socket(int family, int type, int protocol)返回:成功返回非负描述符,失败返回-1family:AF_INET->IPV4协议AF_INET6-&g原创 2020-08-15 19:44:29 · 904 阅读 · 0 评论