2024年3月22日发(作者:)
vc 网络编程(socket)
在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket
编程,并提供一个服务器客户端具体的实例。希望对您有所帮助
一、原理部分
(个人觉得这篇写的可以,所以转与此,原文地址:/78/2
)
在网络编程中最常用的方案便是Client/Server (客户机/服务器)模型。在这种方
案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监
听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的
地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对客户的
请求作出适当的反应。
为了方便这种Client/Server模型的网络编程,90年代初,由Microsoft联合了
其他几家公司共同制定了一套WINDOWS下的网络编程接口,即Windows Socket
s规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编
程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调
用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一
个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序
在网络上传输,接收的信息都通过这个Socket接口来实现。
微软为 Visual C++定义了Winsock类如CAsyncSocket类和派生于CAsync
Socket 的CSocket类,它们简单易用,读者朋友当然可以使用这些类来实现自己的
网络程序,但是为了更好的了解Winsock API编程技术,我们这里探讨怎样使用底层
第 1 页 共 11 页
的API函数实现简单的 Winsock 网络应用程式设计,分别说明如何在Server端和C
lient端操作Socket,实现基于TCP/IP的数据传送,最后给出相关的源代码。
在VC中进行WINSOCK的API编程开发的时候,需要在项目中使用下面的三个
文件,否则会出现编译错误。
1.WINSOCK.H: 这是WINSOCK API的头文件,需要包含在项目中。
2.: WINSOCK API连接库文件。在使用中,一定要把它作为项
目的非缺省的连接库包含到项目文件中去。
3.: WINSOCK的动态连接库,位于WINDOWS的安装目录下。
服务器端操作 socket(套接字)
1.在初始化阶段调用WSAStartup()
此函数在应用程序中初始化Windows Sockets DLL ,只有此函数调用成功后,
应用程序才可以再调用其他Windows Sockets DLL中的API函数。在程式中调用该
函数的形式如下:WSAStartup((WORD)((1<<8|1),(LPWSADATA)&WSADa
第 2 页 共 11 页


发布评论