关于vs2010上的socket链接错误问题

C++代码:

#include <WinSock2.h>
#include <stdio.h>
int main()
{
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;
	wVersionRequested=MAKEWORD(1,1);
	err=WSAStartup(wVersionRequested,&wsaData);
	if(err!=0)
	{
		return 0;
	}
	if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1)
	{
		WSACleanup();
		return 0;
	}
	SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
	SOCKADDR_IN addrSrv;
	addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	addrSrv.sin_family=AF_INET;
	addrSrv.sin_port=htons(6000);
	bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
	listen(sockSrv,5);
	SOCKADDR_IN addrClient;
	int len=sizeof(SOCKADDR);
	while(1)
	{
		SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
		char sendBuff[100];
		sprintf(sendBuff,"Welcome %s to here",inet_ntoa(addrClient.sin_addr));
		send(sockConn,sendBuff,strlen(sendBuff)+1,0);
		char recvBuf[100];
		recv(sockConn,recvBuf,100,0);
		printf("%s\n",recvBuf);
		closesocket(sockConn);
	}
	return 0;
}

出现了好多链接错误, 研究了好半天也没有发现是怎么回事.>下来是代码和 错误信息.

正在链接...>
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__closesocket@4,该符号在函数 _main 中被引用1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4,该符号在函数 _main 中被引用1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__sendto@24,该符号在函数 _main 中被引用1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__recvfrom@24,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__bind@12,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__htons@4,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__htonl@4,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__socket@12,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0,该符号在函数 _main 中被引用
1>tem.obj : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 _main 中被引用
1>d:\My Documents\Visual Studio 2008\Projects\tem\Debug\tem.exe : fatal error LNK1120: 10 个无法解析的外部命令

编译没有问题的, 主要是链接上的错误,所以就去查msdn。第一次竟然没有发现是哪的错,后在csdn上search了一下后才发现好像是在10上写socket要加上新的链接库  Ws2_32.lib.再查msdn,要求如下:
Header   Declared in Winsock2.h.

Library   Use Ws2_32.lib.

DLL        Requires Ws2_32.dll.

加上后果然成功了。



在新的10上要加入链接库 方法:项目>属性->配置属性->链接器->输入 :附加依赖项 中加入要链接的库即可。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值