![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 82
Jaryn1024
这个作者很懒,什么都没留下…
展开
-
Linux C 网络编程——4. 简单TCP Socket程序
根据图中的流程,实现一个最简单的TCP程序。1. 客户端功能:发送一个字符串给服务器[cpp] view plaincopy/* ============================================================================ Name :转载 2014-09-23 08:32:56 · 676 阅读 · 0 评论 -
Linux C 网络编程——1. 大端序和小端序
1. 字节序数据在内存中有2种存放方式:大端序(Big-Endian):低位字节放在高位地址小端序(Little-Endian):相反x86系列则采用little endian方式存储数据如:0x12345678数据以8bit位单位,在内存中的存储如下:Big Endian 低地址转载 2014-09-23 08:28:53 · 491 阅读 · 0 评论 -
Linux C 网络编程——2. 基础
1. 地址存储结构头文件 : netinet/in.hIPv4:[cpp] view plaincopystruct in_addr { in_addr_t s_addr; //uint32 }; [cpp] view plaincopys转载 2014-09-23 08:30:55 · 433 阅读 · 0 评论 -
Linux C 网络编程——3. TCP套接口编程
1. 基本流程2. socket()[cpp] view plaincopy"font-size:14px">int socket(int domain, int type, int protocol); socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用转载 2014-09-23 08:29:46 · 622 阅读 · 0 评论 -
Linux C 网络编程——5. 并发服务器
1. 原理在Linux C 网络编程——4. 简单TCP Socket程序中实现了一个最基本的基于TCP的CS通信,这里介绍一种可以允许Server端可以同时处理多个请求(并发服务器)。原理:每次accept服务器调用fork(),创建一个子进程处理请求。2. 实现只需要修改上一篇文章中的Server.c的while循环即可转载 2014-09-23 08:34:09 · 597 阅读 · 0 评论 -
Linux C 网络编程——6. IO阻塞、非阻塞、复用、信号驱动、异步驱动
在Linux中进程空间和内核空间是分开的,系统调用是在Kernel中,IO 数据会先复制到进程空间,这样进程才能访问。所以Linux I/O分为2个步骤:等待数据和复制数据1. 阻塞I/O(Blocking IO)socket的默认方式。请求IO进程(recvfrom)会一直处于阻塞状态,这种效率极低。2. 非阻塞IOrecvfrom不会阻塞转载 2014-09-23 08:36:45 · 943 阅读 · 0 评论