windows编程学习--网络编程学习--winsock编程(1)
2015-07-22 11:58
591 查看
套接字(Socket)是网络通信的基本构件,最初是由加利福尼亚大学Berkeley学院为UNIX开发的网络通信编程接口,它只能运行在UNIX操作系统,不支持DOS和Windows操作系统。随着Windows操作系统的日益推广,90年代初,微软和第三方厂商共同制定了一套标准,即Windows Socket规范,简称WinSock。
套接字的概念与文件句柄类似,一个套接字就是一个通信标识,由一个短整数表示,实际上就是一个句柄,代表网络协议中的一组数据,该数据包含了通信双方的IP地址和当前的连接状态等信息。我们知道,如果一个文件被打开,可以通过文件句柄对文件进行读写操作,套接字也一样,只不过套接字提供的函数更多一些。
套接字存在于通信区域中,由协议、地址、端口来描述并惟一确定,根据传输协议的不同,套接字可分为3种类型:流式套接字、数据报套接字和原始套接字。流式套接字提供了一个面向连接的、可靠的、数据无错且按顺序接收的服务,这种套接字对应的是面向连接的传输协议,如TCP/IP协议簇中的TCP。数据报套接字提供了一个无连接服务,不提供无错保证,数据可能丢失或重复,且接受顺序混乱,该套接字所对应的是无连接传输协议,如TCP/IP协议簇中的UDP。原始套接字允许直接访问低层的协议,如IP、ICMP协议,该套接字常用于访问服务器中配置的新设备。
以下是在使用winsock套接字进行网络编程的示例图,可以帮助理解在window系统下进行网络编程的过程:
图1:面向连接的套接字的系统调用时序图
![](http://img.blog.csdn.net/20150722140117666?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图2:面向连接的应用程序流程图
![](http://img.blog.csdn.net/20150722135822816?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图3:无连接协议的套接字调用时序图
![](http://img.blog.csdn.net/20150722135827166?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
套接字的概念与文件句柄类似,一个套接字就是一个通信标识,由一个短整数表示,实际上就是一个句柄,代表网络协议中的一组数据,该数据包含了通信双方的IP地址和当前的连接状态等信息。我们知道,如果一个文件被打开,可以通过文件句柄对文件进行读写操作,套接字也一样,只不过套接字提供的函数更多一些。
套接字存在于通信区域中,由协议、地址、端口来描述并惟一确定,根据传输协议的不同,套接字可分为3种类型:流式套接字、数据报套接字和原始套接字。流式套接字提供了一个面向连接的、可靠的、数据无错且按顺序接收的服务,这种套接字对应的是面向连接的传输协议,如TCP/IP协议簇中的TCP。数据报套接字提供了一个无连接服务,不提供无错保证,数据可能丢失或重复,且接受顺序混乱,该套接字所对应的是无连接传输协议,如TCP/IP协议簇中的UDP。原始套接字允许直接访问低层的协议,如IP、ICMP协议,该套接字常用于访问服务器中配置的新设备。
以下是在使用winsock套接字进行网络编程的示例图,可以帮助理解在window系统下进行网络编程的过程:
图1:面向连接的套接字的系统调用时序图
图2:面向连接的应用程序流程图
图3:无连接协议的套接字调用时序图
相关文章推荐
- 软件作品
- HTTP referer
- 在Lighttpd服务器中运行Django应用的方法
- 江苏电信欢go联手华为加大4g网络覆盖
- [转]Mac技巧——让Mac轻松访问Windows网络共享
- HTTP状态码(HTTP Status Code)
- TCP和UDP的“保护消息边界”(粘包、半包)
- OKHttp使用简介
- 深入理解HTTP Session(2)
- Tomcat + Spring MVC + HttpClient:如何使用PUT和PATCH方法传递数据
- TCP的可靠性
- HTTP头信息
- 深入理解HTTP协议、HTTP协议原理分析
- TCP协议中的三次握手和四次挥手(图解)
- 深入理解HTTP Session
- HTTP协议详解(真的很经典)
- FastCGI处理自定义HTTP头
- 计算机网络之网络协议
- 基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service
- Node.js中的网络编程