1 / 11
文档名称:

vc 网络编程socket基本编程详解.doc

格式:doc   大小:54KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

vc 网络编程socket基本编程详解.doc

上传人:dyx110 2020/2/15 文件大小:54 KB

下载得到文件列表

vc 网络编程socket基本编程详解.doc

文档介绍

文档介绍:vc网络编程(socket)   在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例。希望对您有所帮助一、原理部分  (个人觉得这篇写的可以,所以转与此,原文地址:http://dev./78/) 在网络编程中最常用的方案便是Client/Server(客户机/服务器)模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对客户的请求作出适当的反应。为了方便这种Client/Server模型的网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即WindowsSockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。微软为VisualC++定义了Winsock类如CAsyncSocket类和派生于CAsyncSocket的CSocket类,它们简单易用,读者朋友当然可以使用这些类来实现自己的网络程序,但是为了更好的了解WinsockAPI编程技术,我们这里探讨怎样使用底层的API函数实现简单的Winsock网络应用程式设计,分别说明如何在Server端和Client端操作Socket,实现基于TCP/IP的数据传送,最后给出相关的源代码。在VC中进行WINSOCK的API编程开发的时候,需要在项目中使用下面的三个文件,否则会出现编译错误。 :这是WINSOCKAPI的头文件,需要包含在项目中。 :WINSOCKAPI连接库文件。在使用中,一定要把它作为项目的非缺省的连接库包含到项目文件中去。 :WINSOCK的动态连接库,位于WINDOWS的安装目录下。服务器端操作socket(套接字) () 此函数在应用程序中初始化WindowsSocketsDLL,只有此函数调用成功后,应用程序才可以再调用其他WindowsSocketsDLL中的API函数。在程式中调用该函数的形式如下:WSAStartup((WORD)((1<<8|1),(LPWSADATA)&WSAData),其中(1<<8|1),WSAata用来存储系统传回的关于WinSocket的资料。 2、建立Socket 初始化WinSock的动态连接库后,需要在服务器端建立一个监听的Socket,为此可以调用Socket()函数用来建立这个监听的Socket,并定义此Socket所使用的通信协议。此函数调用成功返回Socket对象,失败则返回INVALID_SOCKET(调用WSAGetLastError()可得知原因,所有WinSocket的API函数都可以使用这个函数来获取失败的原因)。 SOCKETPASCALFARsocket(intaf,inttype,intprotocol) 参数:af:(); type:Socket的类型(SOCK_STREAM、SOCK_DGRAM); protocol:通讯协定(如果使用者不指定则设为0); 如果要建立的是遵从TCP/IP协议的socket,第二个参数type应为SOCK_STREAM,如为UDP(数据报)的socket,应为SOCK_DGRAM。 3、绑定端口接下来要为服务器端定义的这个监听的Socket指定一个地址及端口(Port),这样客户端才知道待会要连接哪一个地址的哪个端口,为此我们要调用bind()函数,该函数调用成功返回0,否则返回SOCKET_ERROR。 intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen); 参数:s:Socket对象名; name:Socket的地址值,这个地址必须是执行这个程式所在机器的IP地址; namelen:name的长度; 如果使用者不在意地址或端口的值,那么可以设定地址为INADDR_ANY,及Port为0,WindowsSockets会自动将其设定适当之地址及Port(1024到5000

最近更新

2024年河南省高职单招职业适应性测试模拟试题.. 56页

2024年福州英华职业学院单招职业技能测试题库.. 55页

一级建造师之一建公路工程实务题库1000道及完.. 301页

一级建造师之一建工程法规题库1000道及参考答.. 330页

篮球教练教案 15页

安全员继续教育考试题库1000道附答案【模拟题.. 281页

综合解析湖南张家界市民族中学物理八年级下册.. 20页

综合解析湖南张家界市民族中学物理八年级下册.. 20页

演出经纪人考试题库1000道及参考答案【培优a卷.. 275页

演出经纪人考试题库1000道附答案(突破训练).. 275页

2024年山东省潍坊市高职单招职业适应性测试题.. 73页

2024年江西信息应用职业技术学院单招职业适应.. 55页

2024年重庆电讯职业学院单招职业适应性测试题.. 56页

精选-优秀团员评优申请书-范文资料 4页

2024年克孜勒苏职业技术学院单招职业适应性测.. 74页

2024年天津职业技术师范大学单招综合素质考试.. 74页

2024年扎兰屯职业学院单招综合素质考试题库带.. 55页

2024年湖南外国语职业学院单招职业技能测试题.. 55页

2024年郑州信息工程职业学院单招综合素质考试.. 56页

综合解析山西太原市育英中学物理八年级下册期.. 21页

第一次工地会议纪要 6页

医院普通护理员培训ppt课件 30页

综合解析北京市育英中学物理八年级下册期末考.. 22页

养老护理消毒ppt课件教学 25页

经理辞职报告 32页

心血管护理进展ppt课件 27页

2023年消防救援站党支部工作总结 4页

慢性胃炎中医症候评分表格模板2 3页

教师心得体会师德感悟篇范文2023年 9页

学校食堂6s管理内容和标准四篇 51页