![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
qingkongyeyue
拼搏到无能为力,坚持到感动自己,有些路走下去很长,很累,但是不走会后悔。人生最大的痛苦,莫过于,坚持了不该坚持的,而放弃了不该放弃的
展开
-
进程的地址空间和寻址空间
转自https://zhidao.baidu.com/question/534697799.html地址空间就是程序可以使用的地址的集合,是一个集合。你就把地址想象成电话号码,而一系列的号码组成了一个电话号码空间。现在的操作系统都是比较先进的,用户程序不能直接使用物理地址空间(为了安全),所以操作系统为每个进程创建了一个地址空间,称为虚拟地址空间.(注意是每个进程有一个虚拟地址空间),对应转载 2016-11-16 18:25:01 · 1712 阅读 · 0 评论 -
ntohs, ntohl, htons,htonl的比较和详解
转自http://www.cnblogs.com/myyan/p/5750534.htmlntohs =net to host short int 16位htons=host to net short int 16位ntohl =net to host long int 32位htonl=host to net long int 32位网络字节顺序NBO(Network Byt转载 2016-10-25 13:51:47 · 23328 阅读 · 0 评论 -
sockaddr_in结构体简介
转自http://blog.chinaunix.net/uid-20673616-id-1578732.htmlsockaddr_in(在netinet/in.h中定义):struct sockaddr_in {short int sin_family; /* Address family */unsigned short int sin_转载 2017-03-27 21:03:58 · 692 阅读 · 0 评论 -
在SOCKET编程中,select()函数的作用
转自https://zhidao.baidu.com/question/6530466.html?qbl=relate_question_3&word=select%D4%DAsocketSelect在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓转载 2017-04-14 16:00:58 · 1060 阅读 · 0 评论 -
阻塞、非阻塞、异步、同步以及select/poll和epoll
转载http://blog.csdn.net/lcx46/article/details/42006845对IO,总是涉及到阻塞、非阻塞、异步、同步以及select/poll和epoll的一些描述,那么这些东西到底是什么,有什么差异?一般来讲一个IO分为两个阶段:等待数据到达把数据从内核空间拷贝到用户空间现在假设一个进程/线程A,试图进行一次IO操作。转载 2017-05-15 20:44:36 · 436 阅读 · 0 评论 -
epoll和select区别
转自http://blog.csdn.net/ysu108/article/details/7570571先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法一、问题引出 联系区别阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面转载 2017-06-01 19:44:49 · 237 阅读 · 0 评论 -
以太网数据包TCP、IP、ICMP、UDP、ARP协议头结构详解
转自http://blog.sina.com.cn/s/blog_9c5d29f70101dwgk.html以太网首部目地MAC地址(8字节)源MAC地址(8字节)类型(2字节) 1、IP头的结构版本(4位)头长度(4位)服务类型(8位)封包转载 2017-06-02 16:52:54 · 1473 阅读 · 0 评论 -
多CPU和多核CPU有什么区别
转自https://zhidao.baidu.com/question/360468025074573812.html双核心并不是一个新概念,而只是CMP(Chip Multi Processors ,单芯片多处理器) 中最基本、最简单、最容易实现的一种类型。换言之双核心处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。这样就将两个物理处理器核心整合入一个核中,在任务繁重时...转载 2017-06-20 20:26:35 · 4300 阅读 · 0 评论 -
常用socket函数详解
转自http://blog.csdn.net/g_brightboy/article/details/12854117常用socket函数详解关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确。每次都查半天,经常烦恼于此。索性都弄得清楚、通透,并记录下来,一来便于自己记忆,再者以防日后查阅、回顾。转载 2016-10-25 13:55:29 · 10883 阅读 · 0 评论 -
文件的inode数据
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即转载 2017-08-25 19:48:00 · 751 阅读 · 0 评论 -
管程
简单点说就是只能被单个线程执行的代码了,举个例子假如一个管程类叫atm(取款机),里面有两个方法叫提款 取款,不同的人为不同的线程,但是atm只允许一个人在一个时间段中进行操作,也就是单线程,那么这个atm就需要一个锁,单一个人在使用时,其他的人只能wait。再者一个人如果使用的时间太长也不行,所以需要一个条件变量来约束他条件变量可以让一个线程等待时让另一线程进入管程,这样可以有效防止转载 2017-02-12 12:59:19 · 549 阅读 · 0 评论 -
挂起进程和进程的阻塞和挂起的区别
挂起进程在操作系统中可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态即就绪态..转自http://blog.sina.com.cn/s/blog_9fa53b5f0102vyuy.html理解一:挂起是一种主动行为,因此转载 2017-02-12 11:09:03 · 5038 阅读 · 2 评论 -
Unix/Linux中的/dev/fd机制
转自http://blog.csdn.net/xuorui/article/details/5450032比较新的unix/Linux系统都提供名为/dev/fd的目录,其中有文件0、1、2等文件,打开这些文件,相当于复制这些文件描述符例如:fd=open("/dev/fd/0",mode);等价于fd=dup(0);文件描述符fd和0将共享一个文件表记录项。我们再来做转载 2016-12-21 10:32:04 · 1381 阅读 · 0 评论 -
chmod
转自http://blog.sina.com.cn/s/blog_a04184c101010kpk.html“为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。”chmod u+s 就是给某个程序的所有者以suid权限,可以像root用户一样操作。 变更文件或目录的权限。在UNIX系统家族里,文件转载 2016-12-21 10:54:31 · 272 阅读 · 0 评论 -
实际用户ID和有效用户ID、设置用户ID,新文件、目录的所有权
实际用户ID就是你登录系统的时候是什么用户就是什么用户。有效用户ID是指你以一个用户身份登录了,但是你运行一个程序的时候,未必是这个身份在起作用(联想下passwd这个命令)。也就是说,你执行这个进程的时候,哪个身份在起作用,这个身份就是有效用户ID。设置用户ID指的是一种机制,如果你设置一个文件的设置用户ID位,这个程序在运行的时候,你会得到这个文件所有者的权限。也就是说,你转载 2016-12-21 10:42:15 · 665 阅读 · 0 评论 -
linux umask使用详解
转自umask使用方法 A 什么是umask? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[H转载 2016-12-21 16:35:58 · 305 阅读 · 0 评论 -
fork函数
转自http://blog.csdn.net/jason314/article/details/5640969一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统转载 2016-12-27 17:33:59 · 1338 阅读 · 0 评论 -
linux fork出的子进程从父进程继承些什么不继承什么
转自http://blog.chinaunix.net/uid-20256967-id-200779.html知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 *拷贝*,不是它们本身。由子进程自父进程继承到:进程的资格(真实(real)/有效(effective)/转载 2016-12-28 22:45:22 · 5589 阅读 · 0 评论 -
[Linux]基本I/O重定向
转自http://www.cnblogs.com/rond/p/3530843.htmlcat $./a.out 0 就是测试标准输入是否可读。因为默认标准输入是终端,终端是可读可写的。故输出为read write$ ./a.out 0 ./a.out 2 2>>temp.foo就是先执行./a.out 2,并将错误信息追加输入到temp.f转载 2016-12-19 22:41:40 · 606 阅读 · 0 评论 -
clone 和 fork 的区别
fork()是全部复制 vfork()是共享内存 clone()是可以将父进程资源有选择地复制给子进程,而没有复制的数据结构则通过指针的复制让子进程共享,具体要复制哪些资源给子进程,由参数列表中的clone_flags来决定。另外,clone()返回的是子进程的pid。 clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(names转载 2017-01-10 15:46:48 · 5865 阅读 · 0 评论 -
socket编程学习1----socket编程框架
1. 基于TCP(面向连接)的socket编程(1.1)服务器端程序 创建套接字socket 将套接字绑定到一个本地地址和端口上bind将套接字设为监听模式,准备接收客户请求listen等待客户请求到了;当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字accept 用返回的套接字和客户端进行通信rend/ recv关闭套接字(1.2)客户端程序原创 2016-08-04 22:29:58 · 1348 阅读 · 0 评论 -
Linux网络编程:socket文件传输范例
转自http://blog.csdn.net/lisonglisonglisong/article/details/22699675基于TCP流协议的socket网络文件传输Demo:实现:C语言功能:文件传输(可以传任何格式的文件)[cpp] view plain copy/*********************转载 2017-08-23 13:47:44 · 3261 阅读 · 0 评论