- 20
- 0
- 约8.5千字
- 约 7页
- 2020-10-21 发布于广东
- 举报
Creat on 2015-09-05
《Windows网络编程》_罗莉琴版_8.3节_基于Select模型的Socket编程_代码
——独立观察员 2014.04.26
说明:
(我们网络编程的课本)中,第8.3小节——基于Select模型的Socket编程中的代码。
配套的代码中没有这个,课件(PPT)中有前面一小部分代码,网上也没找到这个,为了做作业,只好
手敲了。手打得挺辛苦,为了大家不再辛苦,所以发上来。另外,有些小地方做了改动,还有难免可能
出错,所以建议对照书本学习。
以下就是代码:
#include stdio.h
#include winsock2.h
#pragma comment(lib, ws2_32.lib)
#include tchar.h
#define PORT 8888
#define DATA_BUFSIZE 1024
/*
Select()函数原型:
int select(
int nfds, //会被忽略;
fd_set * readfds, //用于检测可读性的Socket集合;
fd_set * writefds, //可写性的;
fd_set * exceptfds, //错误的;
const struct timeval* timeout //等待的时间,设为null则是阻塞模式;
);
typedef struct fd_set {
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
FD_CLR(s, *set) 从集合中删除指定的套接字;
FD_ISSET(s, *set) 如果参数s是集合中的成员,则返回非0值,否则返回0;
FD_SET(s, *set) 向集合中添加套接字;
FD_ZERO(s, *set) 将集合初始化为空集合;
*/
/*
《Windows网络编程》 8.3 基于Select模型的Socket编程;
Creat on 2015-09-05
独立观察员倾情手打
*/
typedef struct _SOCKET_INFORMATION{
CHAR Buffer[DATA_BUFSIZE];// 发送和接收数据的缓冲区
WSABUF DataBuf; // 定义发送和接收数据缓冲区的结构体,包括缓冲区的长度和内容
SOCKET Socket; // 与客户端进行通信的套接字
DWORD BytesSEND; // 保存套接字发送的字节数
DWORD BytesRECV; // 保存套接字接收的字节数
}SOCKET_INFORMATION, * LPSOCKET_INFORMATION;
/* winsock2.h中定义的结构体;
typedef struct _WSABUF {
u_long len; // the length of the buffer
char FAR * buf; // the pointer to the buffer
} WSABUF, FAR * LPWSABUF;
*/
//记录正在使用的套接字总数量;
DWORD TotalSockets = 0;
//保存Socket信息对象的数组(Socket集合),FD_SETSIZE表示SELECT模型中允许的最大Socket数量
(64);
LPSOCKET_INFORMATION SocketArray[FD_SETSIZE];
SOCKET ListenSocket; // 监听套接字
SOCKET AcceptSocket; // 与客户端进行通信的套接字
SOCKADDR_IN InternetAddr; // 服务器的地址
WSADATA wsaData; // 用于初始化套接字环境
INT Ret; // WinSock API的返回值
FD_SET WriteSet; // 获取可写性的套接字集合
FD_SET ReadSet; // 获取可读性的套接字集合
DWORD Total = 0; // 处于就绪状态的套接字数
您可能关注的文档
- 68_WordPress使用HeadWay主题和WP-PostViews插件显示浏览量的简单方法_headway-wp-postviews-display-views.pdf
- 152_『符号包裹』列表清单符号批量处理软件_fhbg.pdf
- 152_『符号包裹』列表清单符号批量处理软件_fhbg_20200629_162615.pdf
- 196_【WP插件】友情链接Ultimate_Blogroll_2.5.2_汉化版_ultimate-blogroll-2-5-2.pdf
- 204_小米帐号注销方法_xiaomi-account-delete.pdf
- 216_为WordPress增加上一篇下一篇功能_add-pre-next-func.pdf
- 243_『作业』『网络安全』病毒查杀实验报告_anquanruanjian.pdf
- 366_『作业』网络安全实验_凯撒密码与DES的C实现_kaisa.pdf
- 373_解决转发新浪博客插件wp2sinablog修改文章后重新发布的问题_wp2sinablog-problem.pdf
- 399_『网络安全』RSA与MD5的C实现实验报告_rsa-and-md5.pdf
- 安徽省安庆市潜山市部分学校2025-2026学年七年级下学期阶段学情自测数学试题-普通用卷.docx
- 2026《微型无人机的设计基础综述》2600字.docx
- 安徽六安市金安区2025-2026学年八年级上学期2月期末物理试题-普通用卷.docx
- 2026《五菱汽车公司经营者股权激励实施成效及其启示》9700字.doc
- 北京市第一零九中学2026届高三下学期开学考试数学试题-普通用卷.docx
- 北京海淀实验中学2026届高三下学期数学开学检测试题-普通用卷.docx
- 2026《五菱汽车公司融资模式及融资风险分析》8700字.doc
- 2026《五菱汽车公司物流成本控制研究》文献综述开题报告(含提纲)3800字.doc
- 2026《五菱汽车公司薪酬改革问题研究》开题报告(文献综述)4200字.doc
- 2026《物流企业反内卷的战略转型研究—以顺丰控股为例》13000字.doc
最近下载
- 施工临时用电专项施工方案.pdf VIP
- 2026天津城投集团校招面笔试题及答案.doc VIP
- 2025年江苏学位英语试卷及答案.doc VIP
- 2026年江西信息应用职业技术学院单招职业适应性测试题库参考答案详解.docx VIP
- 造价咨询全过程实施方案.docx VIP
- 2025-2026年演出经纪人之演出市场政策与法律法规模拟题库及答案下载.pdf VIP
- 2025年春西师大版一年级下册数学全册课件.pptx
- 2026年春教科版(新教材)小学科学二年级下册(全册)教学设计(附目录P91).pdf
- 2025年深入贯彻中央八项规定精神学习教育应知应会试题含完整答案详解.docx VIP
- T∕GDEA 001-2024 智能配电房技术规范.pdf VIP
原创力文档

文档评论(0)