欢迎来到天天文库
浏览记录
ID:26997781
大小:932.00 KB
页数:50页
时间:2018-11-30
《信息通信网络概论课程实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《信息通信网络概论》课程实验东南大学自动化学院网络编程实验WindowsSocket编程基础知识实验一实验二、三实验四实验五、六WindowsSocket网络编程WindowsSocket简介套接字编程基础WindowsSocket编程原理Socket编程步骤一、WindowsSocket的由来加利福尼亚大学伯克利分校为UNIX系统开发出了伯克利套接字(BSDsocket),在此基础上扩展形成了windows套接字。WindowsSocket规范是一套开放的、支持多协议的Windows下的网络编程接口,它规范了Internet协议族(IPS,一般为TCP/IP)
2、的API使用.针对多样的网络协议,WindowsSocket统一了操作,简化了编程,使两个进程之间实现连接、通信。二、windowssocket的版本WindowsSocket规范主要有两种版本即1.1和2.0版。主要区别:1.1版本只支持TCP/IP协议,2.0版本可以支持多协议三、编程时的加载事项•需要包含头文件Winsock2.h,需要使用库ws2_32.lib,包含办法可以用语句来告诉编译时调用该库#pragmacomment(lib,”ws2_32.lib”);如果使用VisualC++6.0,可以通过“工程”>“设置”>“工程设置”>“链接”>“对象
3、/库模块”中加入“ws2_32.lib”•WinSock是TCP/IP编程最低级的WindowsAPI,其代码的一部分位于Winsock32.dll中,另一部分位于Windows核心,使用WindowsAPI可以编写Internet服务器和客户端程序。应用程序调用WindowsSocket的API实现相互之间的通信(应用程序与WindowsSocket关系图)应用程序1应用程序2网络编辑界面,如WindowsSockets网络通信协议服务,如TCP/IP操作系统,如Windows物理通信介质应用程序与WindowsSocket关系图返回操作系统为保证其安全性可靠
4、性不允许用户直接使用套接字有三种类型数据报套接字(SOCK_DGRAM)——一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错(时序图)流式套接字(SOCK_STREAM)——一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输(时序图)原始套接字(SOCK_RAW)——允许对底层协议如IP或ICMP(因特网控制消息协议)直接访问,主要用于新的网络协议实现的测试等返回socket创建套接字bind绑定本机接口connect建立连接listen监听端口accept接受连接recv,recvfrom数据接收send,sendto
5、数据发送close,shutdown关闭套接字网络连接函数基本概念IP地址:Internet中的主机要与别的机器通信必须具有一个IP地址,IP地址是Internet中主机的标识。表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的整数。IP地址转换函数inet_addr()点分十进制数表示的IP地址转换为网络字节序的IP地址inet_ntoa()网络字节序的IP地址转换为点分十进制数表示的IP地址端口号为了区分一台主机接收到的数据包应该递交给哪个进程来进行处理,使用端口号TCP端口号与UDP端口号独立端口号一般由IANA(Interne
6、tAssignedNumbersAuthority)管理众所周知端口:1~1023,1~255之间为大部分众所周知端口,256~1023端口通常由UNIX占用注册端口:1024~49151动态或私有端口:49151~65535比喻:如果把IP数据包的投递过程看成是给远方的一位朋友寄一封信,那么IP地址就是这位朋友的所在位置,如安徽合肥中国科大计算系(依靠此信息进行路由)端口号就是这位朋友的名字(依靠这个信息最终把这封信交付给这位收信者)字节序大尾端(Big-Endian):字节的高位在内存中放在存储单元的起始位置小尾端(Little-Endian):与大尾端相反
7、网络字节序(NBO,NetworkByteOrder)使用统一的字节顺序,避免兼容性问题主机字节序(HBO,HostByteOrder)不同的机器HBO是不一样的,这与CPU的设计有关Motorola68K系列,HBO与NBO是一致的IntelX86系列,HBO与NBO不一致字节排序函数htonl4字节主机字节序转换为网络字节序ntohl4字节网络字节序转换为主机字节序htons2字节主机字节序转换为网络字节序ntohs2字节网络字节序转换为主机字节序阻塞通信与非阻塞通信阻塞方式:套接字进行I/O操作时,函数要等待到相关的操作完成以后才能返回,对提高处理机的利用
8、率不利,但编程简单。非阻
此文档下载收益归作者所有