TCP通信技术 2 .ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP通信技术 2

基于TCP/IP的通信技术 (2) 高平 北京理工大学电子工程系信息对抗技术 gaoping@bit.edu.cn 2008 一Socket 编程与网络通信基础 网络编程程序都离不开套接字Socket,是作为计算机与计算机之间通信的接口。Winsock是访问众多的基层网络协议的一种接口,在每个Win32平台上,它都以不同的形式存在着,Winsock 是网络编程的接口,不是协议。 socket机制是美国伯克利大学研制,用于提供一系列的系统调用作为应用程序编程接口。 1-1 C/S模型概念 Socket是面向客户/服务器(C/S)模型而设计的,因此在实际应用中必须有客户端和服务器端两个进程,并且是先启动服务器端的应用程序,然后再启动客户端的应用程序。 1-2、套接字类型 1、流式Socket 是最常用的一种套接字类型,基于TCP协议,为通信双方提供双向、有序、可靠的数据流。 2、数据报Socket 是一种基于UDP协议的套接字类型,它支持通信双方双向的数据流,不过该套接字不能保证数据报传输的顺序和可靠性,须要接收进程重新对数据报进行排序、消除重复数据报并保证数据报的可靠性。 3、原始Socket 用于访问低层的通信协议如IP协议,主要适用于开发新协议或对协议内部进行深层次的研究,一般不适用用户应用程序的开发。 端口扫描器和漏洞扫描器用流式套接字TCP方法编写。 嗅探器设计要求用原始Socket。 1-3、Socket套接字函数 1、初始化函数WSAStartup() 功能:加载Winsock DLL的相应版本,在Windows编程中,只有首先调用WSAStartup函数才能使用Windows Socket系统,这是编程的第一步。 格式:int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData); 1-4、基本Winsock函数 1、socket() 功能:创建一个套接字,并绑定套接字到特定的服务,即面向连接的数据流服务或无连接的用户数据报服务。 格式:SOCKET socket(int af,int type,int protocol); 参数说明: af:指定网络地址类型,IPv4版本使AF_INET、IPv6版本使用AF_INET6。 type:用于指定套接字类型,SOCK_STREAM(流式套接字TCP)、SOCK_DGRAM(数据报套接字UDP) protocol:指定网络协议,一般取0,表示默认为TCP/IP协议,或用IPPROTO_TCP(TCP)、IPPROTO_UDP(UDP)表示。 返回值:若无错误发生,socket返回引用新套接字的描述字。否则返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。 例:建立一个套接字,使用AF_INET确定Pv4版本, 类型为SOCK_STREAM(流式套接字TCP),可以用int 型变量来确认socket是否建立成功。 int main(void) {…… int s=socket(AF_INET,SOCK_STREAM,0); //建立套接字,AF_INET指Pv4版本,SOCK_STREAM 指TCP协议(流式),0默认协议 if(s0)//返回0,表示建立出错 {printf(“\n Greate Socket Error!”); return –1;} //建立套接字成功 2、bind() 功能:将一本地地址与一套接字绑定,即绑定端口。本函数适用于未连接的数据报或流式套接字,在connect或listen调用前使用。当用socket创建套接字后,一个服务进程必须调用bind函数来给其绑定一个IP地址和一个特定的端口号,它便存在于一个命名空间(地址族)中,但并未赋名。 格式:int bind(SOCKET s,const struct sockaddr *name,int namelen); 参数说明: s:待绑定的套接字描述句柄。 namelen:代表name指向的地址结构的长度。 name:指向分配给套接字地址结构的指针。该IP 地址结构的类型struct sockaddr。 地址结构的类型struct sockaddr。 定义如下: struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8];} sin_family:字段必须设为AF_INET,表示 该socket处于Internet域。 sin_port:用于指定服务器服务端口,即服 务类型。注意不要与已固定的服务端口冲 突,而且应当把端口号由主机字节

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档