显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Under the bule sky

Get what I want "cause I ask for it.

 
 
 
 
 
 

Ubuntu系统安装及基本开发环境搭建

2014-8-19 20:35:23 阅读137 评论0 192014/08 Aug19

Ubuntu 系统安装及基本开发环境搭建

一、创建虚拟机

VMware Workstation 是一个软件,这款软件可以用来创建一个虚拟PC机器。我们就是在这个虚拟的PC上安装Ubuntu系统的。

(1)运行VMware Workstation软件,单击File -> New Virtual Machine进行创建虚拟机,如下图所示:

(2)选择典型(Typical)安装,单击”Next”按钮

(3)选择”I will install the operating system later”,单击”Next”进行下一步

(4)按如下图选择,即可

(5)输入虚拟机名称,和虚拟机存放的路径,如下图所示

注意:虚拟机名字将会在安装好后的下面这个地方显示:

(6)给虚拟机分配硬盘空间,个人建议50G

(7)在虚拟机中添加Ubuntu镜像,请按下图进行操作

Ubuntu的镜像小伙伴们可以在网上自行下载,也可以找我索要

好了,到这里我们的虚拟机就创建好了,Ubuntu镜像也已经加载完毕,接下来我们就进行Ubuntu系统安装。

二、Ubuntu系统安装

(1) 单击”Power on this virtual machine”开始安装Ubuntu系统

经过一段时间的等待出现如下界面,单击”Install Ubuntu”进行安装

在安装的时候,不要联网,联网会下载一些数据,导致安装缓慢,切记!

作者  | 2014-8-19 20:35:23 | 阅读(137) |评论(0) | 阅读全文>>

TCP/IP网络编程Ⅰ

2014-8-19 20:04:51 阅读40 评论0 192014/08 Aug19

一、IO模型

在UNIX/Linux下主要有4种I/O模型

1.阻塞io:

最常用、最简单、效率最低

阻塞io模式是最普遍的使用的io模式,大部分程序使用的都是阻塞io模式,默认情况下,套接字建立后所处于的模式就是阻塞模式。

前面学过的很多读写函数在调用过程中会发生阻塞:

读操作中的read、recv、recvfrom

写操作中的write、send

其他操作accept、connect

2.非阻塞io:

可防止进程阻塞在io操作上,需要轮询

当一个应用程序使用了非阻塞模式的套接字,他需要使用一个循环来不停的测试是否一个文件描述符有数据可读,这将是一个非常浪费cpu的操作。

当一开始建立一个套接字时,系统默认为阻塞模式。可以使用函数fctrl()设置一个套接字的标志为O_NONBLOCK来实现非阻塞。

用法:

int fctrl(int fd,int cmd,long arg);

int flag;

flag = fctrl(sockfd,F_GETFL,0);

flag |= O_NONBLOCK;

fctrl(sockfd,F_SETFL,flag);

3.io多路复用

允许同时对多个io进行控制

先构造一张描述符的表,然后调用函数。当这些文件描述符中的一个或者多个已经准备好的进行io时函数才有返回。

作者  | 2014-8-19 20:04:51 | 阅读(40) |评论(0) | 阅读全文>>

标准I/O与文件I/O的区别

2014-8-17 15:37:48 阅读31 评论0 172014/08 Aug17

一、标准I/O与文件I/O的比较

定义:

1.标准IO

标 准 I/O 是 ANSI C 建 立 的 一 个 标 准 I/O 模型 , 是 一 个 标 准函数包和stdio.h头中的定义,具有一定的可移植性。标准IO库处理很多 细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓 存。

(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。

(2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作。

(3)不带缓存:stderr就是了。

2.文件IO

文件IO称之为不带缓存的IO (unbuffered I/O)。 不带缓存指的是每个read, write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统 提供的基本IO服务,与os绑定,特定于*nix平台。

区别:

首先:两者一个显著的不同点在于,标准I/O默认采用了缓冲机制,比如 调用fopen函数,不仅打开一个文件,而且建立了一个缓冲区(读写模式下 将建立一个缓冲区) ,还创建了一个包含文件和缓冲区相关数据的数据结构 (FILE *)。低级I/O一般没有采用缓冲,需要自己创建缓冲区,不过其实在 *nix系统中,都是有使用称为内核缓冲的技术用于提高效率,读写调用是在 内核缓冲区和进程缓冲区之间进行的数据复制。使用标准IO就不需要自己维护 缓冲区了,标准IO库会根据stdin/stdout来选择缓冲类型,也就是说当你使用标 准IO的时候,要清楚它

作者  | 2014-8-17 15:37:48 | 阅读(31) |评论(0) | 阅读全文>>

网络编程相关API

2014-8-17 14:36:49 阅读23 评论0 172014/08 Aug17

一、IP地址转换函数

//将"192.168.0.3"点分十进制ip字符串转为网络字节序的无符号整型ip数值(大端)

int inet_aton(const char *cp, struct in_addr *inp);

in_addr_t inet_addr(const char *cp);

//网络字节序的无符号整型ip数值将转为"192.168.0.3"点分十进制ip字符串

char *inet_ntoa(struct in_addr in);

测试代码:

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <stdlib.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

//./a.out 192.168.0.127

int main(int argc, const char *argv[])

{

struct in_addr ip_addr;

if(argc < 2)

{

fprintf(stderr,"Usage %s ip\n",argv[0]);

作者  | 2014-8-17 14:36:49 | 阅读(23) |评论(0) | 阅读全文>>

TCP/IP网络编程预备知识

2014-8-17 12:38:55 阅读24 评论0 172014/08 Aug17

一、socket套接字

1.是一个网络编程接口

2.是一种特殊的文件描述符

3.并不仅限于TCP/IP协议

4.面向连接

5.无连接

跟协议、IP地址、端口号有关。

普通I/O操作过程:

打开文件--->读写操作--->关闭文件

TCP/IP协议被集成到操作系统的内核之中,引入新型的I/O操作

socket类型:

1.流式套接字:SOCK_STREAM

提供了一个面向连接、可靠的数据传输服务,数据无差错,无重复的发送且按照发送顺序接受。内置流量控制,避免数据流淹没慢的接收方。数据被看作时字节流,无长度限制。用于TCP协议。

2.数据报套接字:SOCK_DGRAM

提供无连接服务。数据包以独立数据包的形式发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接受。用于UDP协议。

3.原始套接字:SOCK_RAW

可以对较低层次协议如:IP、ICMP直接访问。

二、端口号

为了区分一台主机接受的数据报应该转交给哪个进程进行处理,使用端口号来区分。

TCP端口号与UDP端口号独立

众所周知的端口号:1---1023(1---255之间为众所周知的端口号,256---1023端口号通常被系统占用)

已登记端口:1024---49151 (如果系统没占用,用户可用)

作者  | 2014-8-17 12:38:55 | 阅读(24) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

湖北省 咸宁市 处女座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 

发现好博客

 
 
列表加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017

注册 登录  
 加关注