1网络程序设计基本知识课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《1网络程序设计基本知识课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络程序设计 基本知识 课件
- 资源描述:
-
1、客户应用程序网络应用程序编程接口TCP/IP 核心协议物理传输介质服务器应用程序网络应用程序编程接口TCP/IP 核心协议物理传输介质图6-1 TCP/IP应用程序工作模型图 程序A基于TCP/IP的网络程序B网络管理软件网络接口卡(NIC)主机A主机B套接口套接口图6-2 套接口示意图 流套接字(SOCK_STREAM):用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议TCP。这类套接字中,传输数据之前必须在两个应用进程之间建立一条通信连接,这就确保了参与通信的两个应用进程都是活
2、动并且响应的。当连接建立之后,应用进程只要通过套接字向TCP层发送数据流,而另一个应用进程便可以接收到相应的数据流,它们不需要知道传输层是如何对数据流进行处理。特别需要注意的是通信连接必须显式建立。该套接字类型适合传输大量的数据,但不支持广播和多播方式。原始套接字(原始套接字(SOCK_RAW):与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包流套接字只能读取TCP的数据数据报套接字只能读取UDP的数据。使用原始套接字的主要目的是为了避开TCP/IP处理机制,被传送的数据包可以被直接传送给需要它的应用程序。因此,其主要是在编
3、写自定义底层协议的应用程序时使用,例如各种不同的TCP/IP实用程序(如ping和arp)都使用原始套接字实现,也可以用来实现数据包捕捉分析等。/其他代码WORD wVersionRequested;WSADATA wsaData;wVersionRequested=MAKEWORD(2,2);if(WSAStartup(wVersionRequested,&wasData)!=0)在Winsock 2中提供的该函数的扩展格式如下:SOCKET WSASocket(int af,int type,int protocol,LPWSAPROTOCOL_INFO lpProtocolInfo,Gr
4、oup g,int iFlags );表6-1 套接口参数 协议 地址族 套接口类型 套接口类型使用的值 协议字段 TCP SOCK_STREAM IPPROTO_TCP UDP SOCK_DGRAM IPPROTO_UDP 互联网协议(IP)AF_INET Raw sockets SOCK_RAW IPPROTO_RAW IPPROTO_ICMP 表6-2 IP地址和端口的几种设置方式IP 地址参数 端口参数 含 义 bind()使用说明 INADDR_ANY 非 0 IP 地址由系统内核自动指定 可用于只有一个 IP 地址的服务器端 bind()调用中 INADDR_ANY 0 IP 地址
5、和端口号都由系统内核自动指定 这种方式常用于客户端的 bind()调用中 指定本地 IP 地址 非 0 IP 地址和端口号都由bind()函数中的参数指定 这种方式常用于主机有多个 IP 地址的服务器端 bind()调用中 指定本地 IP 地址 0 端口号由内核自动指定 用于客户端 bind()调用中 struct sockaddr u_short sa_family;char sa_data14;struct in_addr union struct u_char s_b1,s_b2,s_b3,s_b4;S_un_b;struct u_short s_w1,s_w2;S_un_w;u_lon
6、g S_addr;S_un;几个结构:服务器程序实例#include void main(void)WSADATA wsaData;SOCKET ListeningSocket;SOCKET NewConnection;SOCKADDR_IN ServerAddr;SOCKADDR_IN ClientAddr;int Port=5150;/Initialize Winsock version 2.2 WSAStartup(MAKEWORD(2,2),&wsaData);ListeningSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);ServerA
7、ddr.sin_family=AF_INET;ServerAddr.sin_port=htons(Port);ServerAddr.sin_addr.s_addr=htonl(INADDR_ANY);bind(ListeningSocket,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr);listen(ListeningSocket,5);int ClientAddrLen=sizeof(ClientAddr);NewConnection=accept(ListeningSocket,(SOCKADDR*)&ClientAddr,&ClientAddrLen
8、);closesocket(NewConnection);closesocket(ListeningSocket);WSACleanup();客户机程序实例#include void main(void)WSADATA wsaData;SOCKET s;SOCKADDR_IN ServerAddr;int Port=5150;WSAStartup(MAKEWORD(2,2),&wsaData);s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);ServerAddr.sin_family=AF_INET;ServerAddr.sin_port=htons(Por
展开阅读全文