WSAStartup()函数的使用

WSAStartup()函数的使用intWSAStartup(__inWORDwVersionRequested,__outLPWSADATAlpWSAData);WSAStartup格式:intPASCALFARW

大家好,又见面了,我是你们的朋友全栈君。

int WSAStartup(
__in          WORD wVersionRequested,
__out         LPWSADATA lpWSAData
);

WSAStartup


格  式: int PASCAL FAR WSAStartup( WORD wVersionRequested,  LPWSADATA lpWSAData );
参  数:  wVersionRequested 欲使用的 Windows Sockets API 版本
lpWSAData  指向 WSADATA 资料的指标
传回值:  成功 – 0
           失败 - WSASYSNOTREADY / WSAVERNOTSUPPORTED /  WSAEINVAL
说明: 此函式「必须」是应用程式呼叫到 Windows Sockets DLL 函式中的第一个,也唯有此函式呼叫成功後,才可以再呼叫其他 Windows  Sockets DLL 的函式。此函式亦让使用者可以指定要使用的 Windows Sockets API 版本,及获取设计者的一些资讯。程式中我们要用 Winsock 1.1,所以我们在程式中有一段为:
WSAStartup((WORD)((1<<8)|1),(LPWSADATA) &WSAData)
其中 ((WORD)((1<<8)|1) 表示我们要用的是 Winsock 「1.1」版本,而WSAData 则是用来储存由系统传回的一些有关此一 Winsock Stack 的资料。

The WSAStartup function initiates use of the Winsock DLL by a process.










在使用WSAStartup的使用出现了下面的问题:
源码:
#include stdafx.h
#include<windows.h>

int main()
{
    WSADATA wsa={0};
    WSAStartup(MAKEWORD(2,2),&wsa);
    
    return 0;
}

出现的错误信息:
错误 1 error LNK2019: 无法解析的外部符号 _WSAStartup@8,该符号在函数 _main 中被引用 CompletePortDemo.obj CompletePortDemo
解决方法:添加#pragma comment(lib,"ws2_32.lib")
正确代码:

#include stdafx.h
#include<windows.h>
#pragma    comment(lib,ws2_32.lib)

int main()
{
    WSADATA wsa={0};
    WSAStartup(MAKEWORD(2,2),&wsa);
    
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155202.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • VeryCD网站无法访问 遭广电总局强行关闭[通俗易懂]

    VeryCD网站无法访问 遭广电总局强行关闭[通俗易懂]就在昨天还可以正常访问的知名下载网站VeryCD今天下午2点半左右突然无法访问,分析人士称或与广电总局最近的新政策有关。知名下载网站VeryCD首页截图  12月9日下午消息,多名网友向腾讯科技反映,就在昨天还可以正常访问的知名下载网站VeryCD今天下午2点半左右突然无法访问,分析人士称或与广电总局最近的新政策有关。  据悉,除了北京网友无法访问外,深圳以及上…

  • C语言 数组倒序输出数字「建议收藏」

    C语言 数组倒序输出数字「建议收藏」引用一维数组元素对10个数组元素依次赋值为1,2,3,4,5,6,7,8,9,10要求按逆序输出#include<stdio.h>intmain(){ inti,a[10]; for(i=0;i<10;i++) a[i]=i; for(i=10;i>0;i–) printf(“%d\n”,i); return0;}小剧场:不能随波逐流。Don’tgowiththeflow….

  • 迁移学习与代码举例

    迁移学习出现背景在有监督的机器学习和尤其是深度学习的场景应用中,需要大量的标注数据。标注数据是一项枯燥无味且花费巨大的任务,关键是现实场景中,往往无法标注足够的数据。而且模型的训练是极其耗时的。因此迁移学习营运而生。传统机器学习(主要指监督学习)基于同分布假设需要大量标注数据然而实际使用过程中不同数据集可能存在一些问题,比如数据分布差异标注数据过期训练数据过期,也就是好不容易标定…

  • BeanUtils.populate()的作用

    BeanUtils.populate()的作用//1.获得请求参数Map<String,String[]>map=request.getParameterMap();Useruser=newUser();//

  • phpstorm 2021激活码【注册码】

    phpstorm 2021激活码【注册码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 考考基础部分,谈谈Java集合中HashSet的原理及常用方法

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:工匠初心cnblogs.com/LiaHon/p/11257805.html 目录 HashSet概述 Has…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号