![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unix网络编程
ajuse
技术宅改变世界!
展开
-
小白都能看明白的VLAN原理解释
为什么需要VLAN 1. 什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。 在此让我们先复习一下广播域的概念。广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格...转载 2018-12-04 19:23:03 · 376 阅读 · 1 评论 -
Linux下的I/O复用与epoll详解
前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。 为什么会是EPOLL select的缺陷 高并发的核心解决方案是1个...转载 2018-12-19 14:46:59 · 133 阅读 · 0 评论 -
Linux 套接字编程中的 5 个隐患
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。 本文识别那些隐患并向您显示如何避开它们。 隐患 1.忽略返回状态 第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分...转载 2018-12-20 14:25:44 · 205 阅读 · 0 评论 -
socket函数接口
1、int socket(int protofamily, int type, int protocol) (1)protofamily:即协议域,又称为协议族(family)。 常用的协议族有,AF_INET(IPV4)、AF_INET6(IPV6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。协议族决定了socket的地址类型,在通信中必须采用对应...原创 2019-01-14 15:55:23 · 343 阅读 · 0 评论 -
一个简单的socket编程示例
1、服务端代码 #include <sys/stat.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <stdl...原创 2019-03-05 18:02:02 · 631 阅读 · 0 评论 -
Select、Poll和Epoll
看到一篇写得很不错的博文,有必要收藏一下: 原文:https://cloud.tencent.com/developer/article/1005481 提到select、poll、epoll相信大家都耳熟能详了,三个都是IO多路复用的机制,可以监视多个描述符的读/写等事件,一旦某个描述符就绪(一般是读或者写事件发生了),就能够将发生的事件通知给关心的应用程序去处理该事件。本质上,select...转载 2019-03-06 17:46:36 · 4082 阅读 · 1 评论 -
TCP/IP系列收发接口recv(),send(),readv(),writev(),recvmsg(),sendmsg(),sendto和recvfrom详解
1.recv()函数接收数据 #include<sys/types.h> #include<sys/socket.h> ssize_t recv(int s,void* buf,size_t len,int flags); 注: s:socket()返回的文件描述符. buf:套接字s中接收的数据放到buf缓冲区. len:接收buf的大小. flag:操作...转载 2019-03-12 10:57:42 · 1799 阅读 · 0 评论 -
TCP协议的三次握手与四次握手
可以根据抓包来分析三次握手与四次握手: 端口40286表示客户端client,端口9000表示服务端server 三次握手: a.client向server发送SYN=1,ACK=0,Seq=x(此阶段不会有Ack),client状态为SYN_SNET; b.server收到client的SYN请求,发送SYN=1,ACK=1,Seq=y,Ack=x+1,server状态从LISTEN...原创 2019-03-13 10:42:07 · 162 阅读 · 0 评论