- 1
- 0
- 约1.91万字
- 约 21页
- 2019-08-06 发布于江西
- 举报
Winsock网络编程-使用阻塞套接字模式
【ITjob课程资料】
Windows网络编程的三种模式
阻塞套接字模式、异步套接字模式(基于消息的非阻塞套接字模式)、MFC异步套接字模式
使用阻塞套接字模式进行Windows网络编程
利用TCP进行通信程序开发
TCP进行通信开发有点类似于步话机(对讲机)对话的方式,那么步骤是首先要找到对方对讲机的位置,然后根据此对讲机的位置进行呼叫,对方接受到呼叫信号之后按下应答按钮,发送回应信号,呼叫方收到回应信号后,两人连线成功,进行通话。我们也可以称之为通信领域的三次握手。
这种需要通过握手确认建立通道进行通讯的方式就是TCP通信。
下面我们来编写服务器端的代码:
初始化套接字库-创建服务端套接字-绑定套接字-开始监听客户端-接受客户端套接字-向客户端发送数据-接受客户端数据-关闭客户端套接字-关闭服务端套接字-释放套接字库资源
一、引入头文件
#include Winsock2.h
#include stdio.h
并引入动态链接库
#pragma comment (lib, ws2_32.lib)
二、初始化套接字库.
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 1);
int err = WSAStartup(wVersionRequested, wsaData);
if (err != 0) return;
SOCKET编程的概念
如何通讯?最直观的方式就是记录两边的通讯地址(就像两个电话号码一样),但是在计算机中每个机器不仅仅有IP地址,还有很多端口,分别负责不同的任务,比如:80端口就是负责IIS默认的HTTP服务的,而21端口则是负责FTP通讯,在操作系统中将这些内容封装到一个结构体中,用于描述IP地址和端口。这个就是Socket(也称作“套接字”),当然还要包括传输协议(TCP或UDP)。
从技术的底层来看,操作系统通过套接字描述符来针对网络通讯的点对点的关系进行描述,每个进程的进程空间里都有一个套接字描述符表,比如:
套接字描述符表
socket
描述地址
1952
内核位置的内存地址1
内核位置的内存地址2
内核缓冲
地址
具体描述
内核位置的内存地址1
6000
TCP
内核位置的内存地址2
6000
TCP
该表中存放着套接字描述符和套接字结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字结构的地址,因此根据套接字描述符就可以找到其对应的套接字结构。每个进程在自己的进程空间里都有一个套接字描述符表但是套接字结构都是在操作系统的内核缓冲里。
c++中通过socket函数在内核中建立一个socket空结构,并返回整数类型的套接字 描述符,对应这个socket结构。所以我们知道socket描述符后就能明确知道对方的地址和端口,以备发送信息。
WSAStartup函数
WSAStartup函数用于初始化网络资源,并建立一个套接字库。
参数说明:
wVersionRequested:用于指定准备加载的Winsock库的版本。高位字节指定所需要的Winsock库的副版本,而低位字节则是主版本。可用MAKEWORD(x,y)(其中,x是高位字节,y是低位字节)方便地获得wVersionRequested的正确值。
lpWSAData:是指向WSADATA结构的指针,WSAStartup用其加载的库版本有关的信息填在这个结构中。
WSADATA结构定义如下:
struct WSAData {
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR *lpVendorInfo;
}
wVersion:打算使用的Winsock版本。
wHighVersion :现有的Winsock库的最高版本。
szDescription:Winsock库的具体描述。
szSystemStatus:sock状态。
iMaxSockets:同时最多可打开多少套接字
iMaxUdpDg:数据报的最大长度
lpVendorInfo:为Winsock实施方案有关的指定厂商信息预留的。一般用不到。
三、创建服务端套接字
SOCKET sockSrv = socket(AF_INET, SOCK_STREAM
您可能关注的文档
- 神经病学-脑血管疾病课件.ppt
- 神经干细胞治疗帕金森病的.ppt
- 神经网络 外文翻译 外文文献 英文文献.doc
- 神农架药用植物资源.doc
- 神州宜居网房地产电子商务平台项目商业计划书.doc
- 沈阳理工大学 中国概况课程教学大纲.doc
- 沈阳市新华书店资源整合研究.doc
- 沈阳水务集团中层管理人员薪酬体系改进.doc
- 审查起诉阶段-- 会见犯罪嫌疑人笔录--操作版.doc
- 审核员技术专家专业能力评定程序.doc
- 2018年全年真题(上午+下午).docx
- 中级信息系统管理工程师2009下半年上午试题.doc
- 2026年郑州新高考历史全程复习规划与备考指南(一轮+二轮+三轮)含易考题、常考题、易错题.docx
- 2026年珠海新高考历史学科全程复习规划与备考指南(一轮+二轮+三轮)含易考题、常考题、易错题.docx
- 辽宁省点石联考2025-2026学年高一上学期11月期中考试物理试题(解析版).docx
- 清单11 记叙文阅读之朗读设计 表达技巧 主旨情感 开放探究(知识 方法 能力清单)(原卷版)-2026年中考语文二轮复习讲练(全国通用).docx
- 热点11 《中华人民共和国治安管理处罚法》(热点专练)(解析版)(全国通用) 2026年中考道德与法治一轮复习讲练.docx
- 专题02 常用地理计算(讲义)(全国通用)(解析版)-2026年中考地理二轮复习讲练.docx
- 小说易错02 重点情节理解偏差(选择题)(易错专练)(全国通用)(解析版)-2026年高考语文二轮复习讲练.docx
- 热点08 新质生产力与科技强国之路——从DeepSeek到锂电池技术突破(热点专练)(全国通用)(原卷版)-2026年高考历史二轮复习讲练.docx
最近下载
- 三下语文阅读理解与答题模板 .pdf VIP
- 人教版二年级下册数学全册新素养教学课件(配2026年春改版教材).pptx
- 智能座舱系统调试与测试课件 2人机交互系统.pptx VIP
- 2025年初中数学教师基本功大赛试题.docx VIP
- 无人机基础理论培训课件.pptx
- 符号建构与身份表演:符号互动论框架下趣缘群体社交机制研究--基于豆瓣MBTI小组的数字民族志.pdf
- T∕ZZB 1653-2020 一次性细胞冻存管(聚丙烯).pdf VIP
- 无障碍设施建设图集.pdf VIP
- 大学英语自我介绍课件.pptx VIP
- (正式版)S-H-T 1844-2024 工业用乙烯、丙烯中痕量氢气、一氧化碳、二氧化碳的测定 气相色谱-氦离子化检测法.docx VIP
原创力文档

文档评论(0)