UNP Chapter 4 - 基本TCP套接口编程

摘要: 4.1. 概述Unix在同时有大量的客户连接到同一服务器上时提供并发性,每个客户连接都迫使服务器为他派生(fork)一个新进程。这里只考虑用fork的每客户单进程模型(one-process-per-client model),在讨论线程时,将考虑另外一种模型,及每客户单线程模型(one-thread-per-client model)。4.2. socket函数为了执行网络I/O, 一个进程必须做的第一件事情就是调用socket函数, 指定期望的通信协议类型(使用IPv4的TCP, 使用IPv6的UDP, Unix域字节流协议等)。#include <sys/socket.h>i 阅读全文
posted @ 2011-12-19 19:38 s7vens 阅读(489) 评论(0) 推荐(0) 编辑

void * 不能增减

摘要: C不允许void指针的增加(因为编译器不知道所指向的数据类型),必须按所读或所写的字节数增加 阅读全文
posted @ 2011-12-19 19:33 s7vens 阅读(182) 评论(0) 推荐(0) 编辑

UNP Chapter 3 - 套接口编程简介

摘要: 3.1. Introduction 概述3.2. Socket Address Structures 套接口地址结构3.3. Value-Result Arguments 值-结果参数struct sockaddr_un cli; // Unix domainsocklen_t len;len = sizeof(cli); // len is a valuegetpeername(unixfd, (SA *)&cli, &len); // len may have changed为何将结构大小由整数改为指向整数的指针呢?这是因为当函数被调用时,结构大小是一个值(此值告诉内核该结 阅读全文
posted @ 2011-12-16 15:45 s7vens 阅读(270) 评论(0) 推荐(0) 编辑

UNP Chapter 2 - 传输层:TCP和UDP

摘要: 2.1. 概述2.2. 总图2.3. UDP:用户数据报协议2.4. TCP:传输控制协议2.5. TCP连接的建立和终止2.6. TIME_WAIT状态2.7. 端口号2.8. TCP端口号与并发服务器2.9. 缓冲区大小及限制2.10. 标准因特网服务 阅读全文
posted @ 2011-12-14 18:28 s7vens 阅读(180) 评论(0) 推荐(0) 编辑

Linux 命令 - netstat

摘要: 功能说明:netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。语 法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。参 数:-a或–all 显示所有连线中的Socket。-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。-c或–continuous 持续列出网络状态。-C或–cache 显示路由器配置的快取信息。-e或–extend 显示网络其他相关信息。-F或 阅读全文
posted @ 2011-12-14 11:26 s7vens 阅读(213) 评论(0) 推荐(0) 编辑

UNP Chapter 1 - 简介

摘要: 1.1. 概述1.2. 一个简单的时间日期客户程序1.3. 协议无关性1.4. 错误处理:包裹函数1.5. 一个简单的时间日期服务器程序1.6. 客户-服务器程序例子索引表1.7. OSI模型OSI模型的 会话层,表示层,应用层 <----> 网际协议族的 应用层OSI模型的 传输层 <----> 网际协议族的 TCP, _ , IPv6 // 原始套接口(raw socket)可以透过TCP和UDP之间的预留间隙绕过传输层直接使用IPv4和IPv6OSI模型的 网络层 <----> 网际协议族的 IPv4, IPv6OSI模型的 物理层和数据链路层 < 阅读全文
posted @ 2011-12-12 17:34 s7vens 阅读(232) 评论(0) 推荐(0) 编辑

网络术语

摘要: ACK (ACKnowledgment) TCP首部中的确认标志API (Application Programming Interface) 应用编程接口ARP (Address Resolution Protocol) 地址解析协议AROABET (Defense Advanced Research Project Agency NETwork) (美国)国防部远景研究规划局AS (Autonomous System) 自治系统ASCII (American Standard Code for Information Interchange) 美国信息交换标准码BER (Basic Enc 阅读全文
posted @ 2011-12-12 17:30 s7vens 阅读(572) 评论(0) 推荐(0) 编辑

PDU (Protocol Data Unit) - 协议数据单元

摘要: 协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。 物理层的PDU是数据位(bit)数据链路层的PDU是数据帧(frame)网络层的PDU是数据包(packet)传输层的PDU是数据段(segment)其他更高层次的PDU是数据(data) 阅读全文
posted @ 2011-12-12 17:17 s7vens 阅读(2237) 评论(0) 推荐(0) 编辑

inet_pton, inet_ntop

摘要: Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。inet_pton函数原型如下[将"点分十进制" -> "整数"]#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>int inet_pton(int af, const char *src, void *dst);//这个函数转换字符串到网络地 阅读全文
posted @ 2011-12-12 16:09 s7vens 阅读(29503) 评论(0) 推荐(0) 编辑

htonl(), ntohl(), htons(), ntohs() 函数

摘要: 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数:htonl()--"Host to Network Long"ntohl()--"Network to Host Long"htons()--"Host to Network Short"ntohs()--"Network to Host Short"之所以需要这些函数是因为计算机数据表示存在两种字节顺序:NBO 阅读全文
posted @ 2011-12-12 15:30 s7vens 阅读(7327) 评论(0) 推荐(2) 编辑