Linux/Unix 网络编程
文章平均质量分 87
Linux的使用,unix环境编程,unix网络编程,Sheell,Makefil等相关知识
第2梦
阳光下灿烂,风雨中奔跑!
展开
-
UDP-Connect
我们都知道TCP 是面向连接的,因此再传输数据之前必须要建立连接,也就是客户端调用connect(),服务端accept(),完成三次握手,建立连接。 我们也知道UDP是面向无连接的,它传输数据之前是不需要建立连接的,那么对于UDP通信编程,我们是否需要调用connect了?如果可以,什么时候调用了?调用了有什么好处了?一、发送接收函数首先回顾下,传输数据的两组函数1、tcp原创 2017-03-10 16:17:26 · 1045 阅读 · 0 评论 -
《UNIX网络编程》笔记——套接字选项
一、操纵套接字选项的方法1、getsockopt和setsockopt函数这两个函数仅用于套接字#include <sys/socket.h> int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sock, int level, int o原创 2017-03-10 17:45:15 · 1122 阅读 · 0 评论 -
TCP-流量控制
所谓的“流量控制”,就是让发送方的发送速率不要太快,要让接受方来的及接收。这是一种对于端的控制,不像拥塞控制,是对网络状况的控制。那么,TCP是怎么实现流量控制的了?这个可以从成块数据(大分组)、交互数据流(小分组)两种数据流情况来详细讨论。一、成块数据对于成块数据,一般采用滑动窗口实现流量控制。滑动窗口滑动窗口,也就是接收方来控制发送方,接收方告诉发送方,自己最多可以接受多少数据,然后发送方根据这原创 2017-03-10 13:14:49 · 813 阅读 · 0 评论 -
多进程和多线程
“进程是程序在处理机上的一个执行过程,是资源分配的基本单位”;“线程是CPU调度的一个基本单位”。概念,我们都烂熟于心了,那么是否可以究其本质的分析下,多进程和多线程的优缺点,以便在实际场景中进行合适的选择了?一、多进程1、概念在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。2、优点1)编程相原创 2017-03-01 19:02:15 · 683 阅读 · 0 评论 -
操作系统-内存管理笔记
内存管理最基本的操作就是由处理器把程序装入内存中运行。技术有固定分区、动态分区、简单分页、简单分段、虚拟内存分页、虚拟内存分段等。在现代操作系统中基本都有虚拟内存技术。下面了解下各个方法的思想。1、固定分区管理用户内存空间的最简单的方法是就是把它分成许多固定边界的区域。对于分区大小,我们可以采用大小相等分区,或者大小不相等分区。1)大小相等的分区。 在这种情况下,小于或者等于分区大小的任何进程都可原创 2017-02-23 13:58:27 · 1037 阅读 · 0 评论 -
Linux命令-sed
原文地址:linux sed命令详解一、简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作转载 2017-02-23 14:20:56 · 674 阅读 · 0 评论 -
shell-特殊符号
在Shell中,有几个符号有着特别的含义,分别是#符号、分号、引号、斜线与反斜线、反引号、冒号、问号、美元符号,下面详细看看这几个特殊字符的作用。原创 2017-02-21 22:00:10 · 5672 阅读 · 0 评论 -
Linux命令-查看文件
linux中查看文件的命令有cat,more,less,head,tail等,本文主要看看他们的用法与区别。原创 2017-02-21 21:04:10 · 915 阅读 · 0 评论 -
必须掌握的协议-TCP
网络层次模型,以及TCP头部格式原创 2017-02-19 15:19:51 · 1381 阅读 · 0 评论 -
linux编程常用头文件
转自:socket网络编程中的头文件Socket编程中需要用到的头文件stdlib.h : //某些结构体定义和宏定义,如EXIT_FAILURE、EXIT_SUCCESS等sys/types.h:包含很多类型重定义,如pid_t、int8_t等sys/socket.h:与套接字相关的函数声明和结构体定义,如socket()、bind()、connect()及struct sockaddr的定义转载 2017-02-17 12:20:25 · 1118 阅读 · 0 评论 -
UDP套接字编程
UDP简介UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快.原创 2017-02-17 12:41:52 · 584 阅读 · 0 评论 -
Linux命令-权限设置
在Linux中,一个用户对一个文件(目录)是否有权利去使用,是根据此文件(目录)设置的权限决定的。每个用户都至少属于一个组。Linux中的一个文件在正常情况下是属于一个用户所有,将此用户称为文件所有者(也可以称为属主),而将一些用户统一分在一个组里,设定此组对文件操作的权限。对于超级用户来说,它拥有所有权限。1、查看权限属性(ls -l)用法:LS -L [文件或者目录名]图原创 2015-12-06 13:41:20 · 3044 阅读 · 0 评论 -
Linux命令-压缩解压命令
1、压缩解压命令GZIPgzip命令能够压缩和解压以.gz结尾的文件,命令格式如下:gzip [选项] 文件名 我们还可以指定压缩的百分比,共有1-9,9个压缩比,1的压缩比最差,但速度最快,而9的压缩比最好,但是比较慢,默认的为级别6.gzip命令选型gzip命令选项选项说明-d解压原创 2015-12-06 14:51:29 · 1119 阅读 · 0 评论 -
标准IO与文件IO
标准IO 标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。 标准的IO提供了三种类型的缓存: (1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作。原创 2015-12-29 22:17:23 · 979 阅读 · 0 评论 -
《UNIX环境高级编程》笔记——线程
线程与进程的概念 进程是具有独立功能的程序在某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位;线程是进程的一个实体,一个进程可以包含一个或多个进程,线程是CPU调度和分派的基本单位。使用多线程的好处 简化处理异步时间的代码。通过为每种事件类型的处理分配单独的线程,能够简化处理异步事件的代码。 共享方便。多个线程自动地可以原创 2015-12-30 20:09:22 · 1033 阅读 · 0 评论 -
《UNIX环境高级编程》笔记——进程(二)
进程控制进程标示符每个进程都有一个非负整数表示的唯一ID。虽然是唯一的,但是进程ID可以重用。当一个进程终止后,其进程ID就可以再次使用了。ID为0的通常是调度进程,常被称为交换进程,也被称为系统进程;ID为1的通常是init进程;ID为2的通常是页守护进程。#include #include pid_t getpid(void); return PIDpid_t getpp原创 2015-12-31 21:32:18 · 1133 阅读 · 0 评论 -
《UNIX环境高级编程》笔记——进程(三)
进程关系Unix终端登录过程: init----->init---->getty----->login----->getpwname----->getpasw----->crypt----->登录成功 系统管理员创建通常名为/etc/ttys的文件,文件中每个终端设备都有一行用来说明设备名和传递给getty程序的参数如终端的波特率等等> 1.当系统自举时,内核创建原创 2016-01-01 16:32:27 · 1118 阅读 · 0 评论 -
《UNIX环境高级编程》笔记——进程(一)
进程环境1. Main函数 C程序总是从main函数开始执行,main函数原型为 int main(int argc,char *argv[]); 其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。当内核执行一个C程序时(使用exec函数),在调用main前先调用一个特殊的启动例程,可执行文件将此启动例程指定为程序的起始地址。启动例程从内核取得命令行参数原创 2015-12-31 11:27:05 · 1401 阅读 · 0 评论 -
《UNIX环境高级编程》笔记——信号
信号概念 信号是软件终端,它提供了一种异步处理事件的方法。每个信号都有一个名字,这些名字都是以三个字符SIG开头。产生终端信号的条件:1. 当用户按某些终端键时,产生信号。2. 硬件异常产生信号:除数为0、无效的存储访问等等。3. 进程用kill函数可将信号发送给另一个进程或进程组用户可用kill命令将信号发送给其他进程。4. 当检测到某种软件条件已经发生,并将其通知原创 2016-01-01 20:50:37 · 1639 阅读 · 0 评论 -
TCP套接字编程(一)
篇一:LInux socket编程(一) 篇二:LInux socket编程(二)一、Tcp 客户端服务器通信模型首先要清楚socket通信整个过程是怎样的,首先肯定都要创建一个socket, 然后服务器收拾收拾,准备接客(listen,bind accept).诶,有客户端来大保健了(accept)。来吧,谈谈价钱啥的(三次握手),好了,达成一致,开始工作。 下面首先总结一下几个重原创 2017-02-14 17:43:44 · 894 阅读 · 0 评论 -
TCP套接字编程(二)
前面通过多进程,多线程,支持处理多个客户端通信,本篇将讲述用select这个IO复用来实现。IO模型首先连接一下IO模型,unix下有5种可用IO模型,分别是:阻塞式IO、非阻塞式IO、IO复用、信号驱动式IO。 5种IO模型比较 1、阻塞式IO阻塞式IO是最常用的IO模式,它就是没有数据就阻塞,一直等到有数据位置,期间啥也不干,就一门心思等数据。2、非阻塞式IO非阻塞式IO,就是不断轮询,原创 2017-02-15 13:22:58 · 569 阅读 · 0 评论