1 / 46
文档名称:

网络编程资料.ppt

格式:ppt   大小:192KB   页数:46页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

网络编程资料.ppt

上传人:xunlai783 2018/6/22 文件大小:192 KB

下载得到文件列表

网络编程资料.ppt

相关文档

文档介绍

文档介绍:第六章 Socket编程
1
1、什么是套接字
套接字是一组用于编写网络程序的API
常见的套接字有:
--Windows平台
WinSock
--Unix/Linux
socket
套接字类型:
--stream socket
面向流的一种套接字。
--datagram socket
面向数据报的一种套接字。
--raw socket
原始套接字,具有最小的封装,最大的灵活性。
2
Stream socket应用例子
--
--http
--tcp
……
Datagram socket应用例子
--udp
--tftp
--bootp
……
Raw socket
--如果需要开发自己的协议或发送特殊的包,需要用到Raw socket
3
2、数据封装
--是指原始数据被层层封装在不同层次的数据包
中,最终进入到物理层传输,到达目标机器后,
再被层层解析出来,直到还原为原始数据。
--Socket为程序员完成所有的底层数据封装,程
序员只需要将需要发送的数据提交给socket
API函数,API函数完成其它所有的工作,这一
方面带来了便利,保证了正确;另一方面也阻
止了个性与自定义的灵活
4
记住网络七层模型
四层模型
FTP
HTTP
NV
TFTP
TCP
UDP
IP
NET1
NET2
NET3
NET4
网络层
数据链路层
物理层
应用、表示、会话层
运输层
5
3、相关数据结构
--Windows平台头文件

--socket描述符
unsigned int 用于指明使用什么样的socket
#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_RAW 3
#define SOCK_RDM 4
#define SOCK_SEQPACKET 5
--字节顺序
需要注意存在大尾/小尾两种字节顺序,但通常这不是问题
6
3、相关数据结构
--地址信息
Struct sockaddr
{
unsigned short sa_family; //地址家族
char sa_data[14];
};
AF_UNSPEC AF_IPX AF_APPLETALK ITT
AF_UNIX AF_NS BIOS AF_SNA
AF_ISO AF_VOICEVIEW
AF_IMPLINK AF_OSI AF_FIREFOX AF_DLI
AF_PUP AF_ECMA AF_UNKNOWN1 AF_LAT
AF_CHAOS AF_DATAKIT AF_BAN AF_HYLINK
7
3、相关数据结构
--地址结构
Struck sockaddr_in
{
short int sin_family;//通信类型
unsigned short int sin_port;//端口
struct in_addr sin_addr; //internat地址
unsigned char sin_zero[8];//与sockaddr一致的长度
};
此处的sin_addr必须使用网络顺序,即大端顺序(高对低、低
对高)
这只需要记住,并不需要程序员自已处理,而是socket提供一
组函数供程序员使用.
8
3、相关数据结构
--Raw Socket需要指明协议
struct sockproto
{
u_short sp_family; /* address family */
u_short sp_protocol; /* protocol */
};可用协议类型如下:
PF_UNSPEC PF_NS ITT PF_APPLETALK
PF_UNIX PF_IPX PF_SNA PF_VOICEVIEW
PF_ISO PF_FIREFOX
PF_IMPLINK PF_OSI PF_DLI PF_UNKNOWN1
PF_PUP PF_ECMA PF_LAT PF_BAN
PF_CHAOS PF_DATAKIT PF_HYLINK
9
4、本机转换
--htons
host work short
将本机顺序的short类型数据转换为网络顺序。
--htonl
host work long
将本机顺序的long类型数据转换为网络顺序。
--ntohs
network to host short
--ntohl
network to host long
10