Socket网络编程及其实现

Socket网络编程及其实现

ID:41037328

大小:77.00 KB

页数:5页

时间:2019-08-14

Socket网络编程及其实现_第1页
Socket网络编程及其实现_第2页
Socket网络编程及其实现_第3页
Socket网络编程及其实现_第4页
Socket网络编程及其实现_第5页
资源描述:

《Socket网络编程及其实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Socket网络编程及其实现20085249网络2班李涛【摘要】网络应用程序是通过网络使用通信协议实现进程间的通信,TCP/IP就是网络上常用的协议之一,在进行网络应用程序设计时,TCP/IP协议的核心内容被封装在操作系统中。因此,可以说设计网络应用程序就是利用网络编程接口(API)进行程序设计的过程。在Windows环境下的网络应用程序编程接口叫WindowsSockets,即套接口。关键词:套接口,网络编程,TCP/IP协议1引言  网络应用程序是通过网络使用通信协议实现进程间的通信,TCP/IP就是网络上常用的协议之一,在进行网

2、络应用程序设计时,TCP/IP协议的核心内容被封装在操作系统中。网络应用程序要使用TCP/IP协议来实现自己的功能,只能通过由系统提供给用户的TCP/IP协议编程接口来实现[1]。因此,可以说设计网络应用程序就是利用网络编程接口(API)进行程序设计的过程。在Windows环境下的网络应用程序编程接口叫WindowsSockets,即套接口。  2套接口  2.1套接口的概念  WindowsSocketsAPI依靠套接口Socket进行通信。套接口可看成是两个网络应用程序进行通信时,各自通信连接中的一个端点。通信时,其中的一个网路应

3、用程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过网络接口卡(NIC)的传输介质将这段信息发送到另一台主机的Socket中,使这段信息能传送到其它程序中,如图1所示。[1]    当主机A上的网络应用程序A要发送数据时,通过调用数据发送函数首先将要发送的一段信息写入Socket中,Socket中的内容通过主机A的网络管理软件由主机A的网络接口卡发送到主机B,主机B的网络接口卡接收到这段信息后,再传给主机B的网络管理软件,网络管理软件将这段信息保存在主机B的Socket中,然后程序B才能在Socket中读取并使用

4、这段信息。由此看来,Socket的本质是通信过程中所要使用的一些缓冲区及一些相关的数据结构。2.2套接口的分类  为了满足不同的通信程序对通信质量和性能的要求,一般的网络系统提供了三种不同类型的套接口,以供用户在设计网络应用程序时根据不同的要求来选择。这三种套接口分别是:(1)流式套接口(SOCK_STREAM),它提供了一种可靠的、面向连接的双向数据传输服务,实现数据无差错、无重复地发送。流失套接口内设流量控制,被传输的数据看作是无记录边界的字节流。在TCP/IP协议族中,使用TCP协议来实现字节流的传输,当用户想要发送大批量的数据

5、或者对数据的传输有较高的要求时,使用流式套接口。(2)数据报套接口(SOCK_DGRAM),它提供了一种无连接、不可靠的双向数据传输服务。免费论文。数据包以独立的包形式被发送,并保留了记录边界,不提供可靠性保证。数据在传输过程中可能会丢失或重复,并且不能保证在接收端数据按发送顺序接收。免费论文。在TCP/IP协议族中,使用UDP协议来实现数据报套接口。在同一台计算机上或负载较轻的LAN上,因为出现差错的可能性较小,所以可以使用数据报套接口进行数据传输,这样通信的质量可以得到保证,并且通信的效率较高。(3)原始套接口(SOCK_RAW)

6、,该套接口允许对较低层协议(如IP或ICMP)进行直接访问,常用于检验新的网络协议实现,也可用于测试新配置或安装的网络设备。3Socket编程基础3.1Socket工作模式Socket以客户/服务器模式工作。Socket服务器程序通常事先已经启动,并在一个众所周知的端口监听对服务的请求。Socket客户应用程序需要某种服务时,便向提供服务的Socket服务器发出请求,服务器接收到请求后,就响应客户提出的请求[2]。3.2基本套接字的系统调用应用程序常用的函数列举如下,WSAStarup():检查系统中是否有WindowsSockets

7、的实现库Socket():创建一个SocketBind():为创建的Socket指定通信对象Connect():请求连接Listen():等待连接状态Accept():接收连接请求Send()/Recv():发送接收数据(TCP)Sendto()/Recvfrom():发送接收数据(UDP)CloseSocket():关闭指定的SocketWSACleanup():释放为应用程序或DLL分配的任何资源3.3用于无连接协议(如UDP)的Socket系统调用流程框图  3.4用于面向连接协议(如TCP)的Socket系统调用流程框图4编程

8、实例本实例使用了VisualC++6.0下的控制台程序,该程序中的通信协议使用的是面向连接的TCP协议(SOCK_STREAM)[3]。服务器端的IP地址使用系统指定的IP地址,端口号在程序中指定为6000。4.1服务器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。