- 4
- 0
- 约1.12万字
- 约 11页
- 2017-12-04 发布于江西
- 举报
windows socket编程实战
windows socket编程实战
Socket中一个比较重要的结构体:hostent,应该用好这个结构体。只允许复制应用程序一个备份,不允许应用程序自己修改,只能由系统修改,在调用任何socket结构之前,都应该copy自己需要的信息。通讯编程详见MSDN中Windows CE document-Application Develop-Communication Services-Windows Sockets章节。
1 winsock 的启动和终止——WSAStartup():
使用winsock之前,必须对其进行初始化(VC中项目创建时不包括socket的时候),将其加载,否则,将返回SOCKET_ERROR错误,错误信息为WSANOTINITIALIZED。
用WSAStartup函数可加载WinSock库
函数声明:
int WSAStartup(WORD wVersionRequested , LPWSADATA lpWSAData); //成功返0,否则返非0
参数说明:
wVersionRequested : WinSock库的版本号,高位指定副版本,低位指定主版本,可通过MAKEWORD(X , Y )宏指定,X为低位,Y为高位。例:wVersionRequested =MAKEWORD(1,2);
lpWSAData : 接收WinSock实现细节的LPWSADATA结构。
Typedef struct WSAData {
?? WORD?????????? ?? wVersion; //设置成准备使用的WinSock版本
?? WORD????????? ? ?? wHighVersion; //存放的是现有的WinSock库的最高版本,与wVersionRequested 参数相同
?? char??????????? ? szDescription[WSADESCRIPTION_LEN+1];
?? char???????????? szSystemStatus[WSASYSSTATUS_LEN+1];
?? unsigned short?? iMaxSockets;
?? unsigned short?? iMaxUdpDg;
?? char FAR *????? ? lpVendorInfo;
} WSADATA , FAR* LPWSADATA;
则一个程序要使用1.2版本的WinSock,程序为:
#include afxsock.h
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, wsaData );
if ( err != 0 )
{ AfxMessageBox(socket初始化失败!);
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
AfxMessageBox(socket创建版本错误!);
return;
}
各windows平台支持的WinSock最新版本 平台 WinSock版本 Win95 1.1 Win98 2.2 NT4.0 2.2 Win2000 2.2 Win CE 1.1 使用完WinSock释放所使用的资料:
int WSACleanup(void); //成功返回0,否则返回SOCKET_ERROR
示例代码:
WSACleanup();
2创建套接字——Socket()和WSASocket()
网络通信必须得创建套接字,创建一个套接字,使用下面的函数:
SOCKET Socket(int af ,int type,int protocol);
或者:
SOCKET WSASocket(int af,int type,int protocol,LPWSAPROTOCOL_INFO lpProtocolinfo,GROUP g , DWORD dwFlags)
注:WSASocket为Socket的WinSock2版本,其原理与方式与原函数类似。
调用成功则返回SOCKET类型的套接字句柄,否则返回INVALID_SOCKET错误
参数说明:
af : 协议簇,是常值 ,在windows Socket网络程序中,其只能为AF_INET,
以下所有内容皆针对于AF_INET协议所言
协议簇
您可能关注的文档
- TST数字交换网络设计.doc
- TripAdvisor是全球最大的旅行者社区wuhao.ppt
- TSPL中文文档.doc
- TTE-CMC员工健康指南.ppt
- TTT-讲师培训.ppt
- TurboCRM技术FAQ.doc
- tuxedo在LINUX下的安装笔记.doc
- TRIZ基本概念.ppt
- TTT培训游戏汇总.docx
- T_SQL语言.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 北师大版三年级下册数学全册教学设计(配2026年春改版教材).docx
- (2026年)跌倒坠床护理综合指南PPT课件.pptx VIP
- 工程设计应急响应方案(3篇).docx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 佳能EOS1500D基本使用说明书说明书.pdf VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 渣打银行(香港)有限公司.PDF VIP
原创力文档

文档评论(0)