首页 > 编程语言 >网络编程

网络编程

时间:2023-02-26 14:12:57浏览次数:29  
标签:Windows 编程 网络 应用程序 DLL char iMaxUdpDg Sockets

(一)WSADATA

1.说明

WSADATA,一种数据结构。这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据。它包含Winsock.dll执行的数据。

2.结构原型

typedef struct WSAData {
    WORD        wVersion;
    WORD        wHighVersion;
#ifdef _WIN64
    unsigned short    iMaxSockets;
    unsigned short    iMaxUdpDg;
    char        *lpVendorInfo;
    char        szDescription[WSADESCRIPTION_LEN+1];
    char        szSystemStatus[WSASYS_STATUS_LEN+1];
#else
    char        szDescription[WSADESCRIPTION_LEN+1];
    char        szSystemStatus[WSASYS_STATUS_LEN+1];
    unsigned short    iMaxSockets;
    unsigned short    iMaxUdpDg;
    char        *lpVendorInfo;
#endif
} WSADATA, *LPWSADATA;

wVersion

Windows Sockets DLL期望调用者使用的Windows Sockets规范的版本。 高位字节存储副版本号, 低位字节存储主版本号,可以用WORD MAKEWORD(BYTE,BYTE ) 返回这个值,例如:MAKEWORD(1,1)

wHighVersion

这个DLL能够支持的Windows Sockets规范的最高版本。通常它与wVersion相同。

iMaxSockets

单个进程能够打开的socket的最大数目。Windows Sockets的实现能提供一个全局的socket池,可以为任何进程分配;或者它也可以为socket分配属于进程的资源。

这个数字能够很好地反映Windows Sockets DLL或网络软件的配置方式。应用程序的编写者可以通过这个数字来粗略地指明Windows Sockets的实现方式对应用程序是否有用。

例如,X Windows服务器在第一次启动的时候可能会检查iMaxSockets的值:如果这个值小于8,应用程序将显示一条错误信息,指示用户重新配置网络软件(这是一种可能要使用szSystemStatus文本的场合)。显然无法保证某个应用程序能够真正分配iMaxSockets个socket,因为可能有其它WindowsSockets应用程序正在使用。

iMaxUdpDg

Windows Sockets应用程序能够发送或接收的最大的用户数据包协议(UDP)的数据包大小,以字节为单位。如果实现方式没有限制,那么iMaxUdpDg为零。

在Berkeley sockets的许多实现中,对于UDP数据包有个固有的限制(在必要时被分解),大小为8192字节。Windows Sockets的实现可以对碎片重组缓冲区的分配作出限制。对于适合的WindowsSockets 实现,iMaxUdpDg的最小值为512。

注意不管iMaxUdpDg的值是什么,都不推荐你发回一个比网络的最大传送单元(MTU)还大的广播数据包。(Windows Sockets API 没有提供发现MTU的机制,但是它不会小于512个字节)。WinSock2.0版中已被废弃。

lpVendorInfo

指向销售商的数据结构的指针。这个结构的定义(如果有)超出了WindowsSockets规范的范围。WinSock2.0版中已被废弃。

szDescription

以null结尾的ASCII字符串,Windows Sockets DLL将对Windows Sockets实现的描述拷贝到这个字符串中,包括制造商标识。

文本(最多可以有256个字符)可以包含任何字符,但是要注意不能包含控制字符和格式字符,应用程序对其最可能的使用方式是把它(可能被截断)显示在在状态信息中。

szSystemStatus

以null结尾的ASCII字符串,Windows Sockets DLL把有关的状态或配置信息拷贝到该字符串中。Windows Sockets DLL应当仅在这些信息对用户或支持人员有用时才使用它们,它不应被作为szDescription域的扩展。

3.代码示例

WSADATA wsaData = {0};

 

标签:Windows,编程,网络,应用程序,DLL,char,iMaxUdpDg,Sockets
From: https://www.cnblogs.com/imreW/p/17156583.html

相关文章

  • 网络传输介质有哪些:双绞线,同轴电缆,光纤,无线
    双绞线双绞线(TwistedPair,TP)是一种综合布线工程中最常用的传输介质,是由两根具有绝缘保护层的铜导线组成的。把两根绝缘的铜导线按一定密度互相绞在一起,每一根导线在传输中......
  • 编程式路由导航
    介绍:编程式导航就是给元素写事件,可以使用query或replace进行传递数据代码:<template><divclass="aboutone"><h1>我是Homeone</h1><ul>......
  • Go编程实战:博客备份
    在“博客备份”一文中,编写了两个python脚本,然后使用一个命令行将博客备份流程串联起来。这里,我们将使用Go来实现。不太熟悉Go语言的读者,可以阅读之前写的两篇文章......
  • Windows黑客编程之功能技术(下)
    描述利用CreateProcess和匿名管道,获取远程命令执行的结果使用MoveFileEx和批处理脚本,实现文件自删除远程CMD关键在于捕获命令的输出结果创建匿名管道,一端写,一端读......
  • Windows黑客编程之功能技术(中)
    描述利用WM_DEVICECHANGE消息,进行u盘插拔监控利用ReadDirectoryChangesW函数,进行文件监控利用hook原始输入设备,进行按键监控记录u盘监控DialogBoxParam:在显示对话......
  • Windows黑客编程之功能技术(上)
    描述利用进程快照CreateToolhelp32Snapshot,进行进程、线程、进程模块的遍历利用FindFirstFile、FindNextFile,进行文件目录的遍历进程快照的遍历遍历进程BOOLEnumPr......
  • 计算机编程语言概述
    计算机语言是什么语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,可以使用英语或普通话。计算机编程语言:就是人与计算机......
  • 网络数据请求get&post
                   ......
  • 思科网络技术 - 课设
    某公司计划建设一个安全、可靠、可扩展和高效的网络环境,将总部和分支机构(站点A和站点B)互联,使公司内部能够方便共享网络资源,全网接入Internet,同时实现公司内部的信息保密隔......
  • 神经网络2
    神经网络的直观理解--使用一个手写数字识别的例子来理解神经网络。一张图片有28x28的像素块,根据像素块的灰度值不同,可排列成不同的数字。这里,我们把神经网络的第一层理......