关于vs2008上的socket链接错误问题
来源:互联网 发布:数据检索 编辑:程序博客网 时间:2024/05/01 18:17
昨天想用socket做一个简单的windows程序, 先拿来了以前在vc6.0上做的一小段代码, 竟然发现在vs2008上不能运行.出现了好多链接错误, 研究了好半天也没有发现是怎么回事.>下来是代码和 错误信息.
正在链接...>
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 个无法解析的外部命令
代码是:
#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 1;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return 1;
}
SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
sockaddr_in addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(4546);
bind(sockSrv,(sockaddr*)&addrSrv,sizeof(sockaddr));
char recvBuf[100];
char sendBuf[100];
char temBuf[200];
sockaddr_in addrClient;
int len=sizeof(sockaddr);
while(1){
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR *)&addrClient,&len);
if('q'==recvBuf[0]){
sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR *)&addrClient,len);
printf("Chat end!\n");
break;
}
sprintf(temBuf,"%s say: %s",inet_ntoa(addrClient.sin_addr),recvBuf);
printf("%s\n",temBuf);
printf("Please input data:\n");
gets(sendBuf);
sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR *)&addrClient,len);
}
closesocket(sockSrv);
WSACleanup();
}
编译没有问题的, 主要是链接上的错误,所以就去查msdn。第一次竟然没有发现是哪的错,后在csdn上search了一下后才发现好像是在08上写socket要加上新的链接库 Ws2_32.lib.再查msdn,要求如下:
Header Declared in Winsock2.h.
Library Use Ws2_32.lib.
DLL Requires Ws2_32.dll.
加上后果然成功了。
在新的08上要加入链接库 方法:项目>属性->配置属性->链接器->输入 :附加依赖项 中加入要链接的库即可。
本文还未找到源头
- 关于vs2008上的socket链接错误问题
- 关于vs2008上的socket链接错误问题
- 关于vs2008上的socket链接错误问题
- 关于vs2008上的socket链接错误问题
- 关于vs2008上的socket链接错误问题
- 【socket】关于socket链接错误问题
- 关于C++模板的链接错误问题
- VS2008有关 LNK1000链接错误的解决
- 【云的等待】VS2008 LNK1000链接错误
- 关于数据库异常链接不上的错误
- VS2008 LNK1000链接错误
- 关于无法解析的外部符号 的错误问题 socket
- 关于.netframework 安装不上,或vs2008安装不上的问题
- 关于解决qq上链接打不开的问题
- 关于vs2013上面socket连接错误的问题
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题 收藏
- 关于 VS2008 error LNK2019错误的解决方法
- 向国外投稿需要注意些下面几点
- 【Unity3D插件】NGUI屏幕自适应
- C# WebSocket 聊天室
- Chart FX使用笔记
- 学习笔记: cdq分治
- 关于vs2008上的socket链接错误问题
- 公告:CSDN新版首页上线
- ARM平台的ppp-2.4.4交叉编译
- 让ubuntu开机自启动小键盘
- Java 默认修饰符 总结
- JS window 窗口的操作
- new Date 在IE 下 兼容性的问题
- Jsp&Servlet
- 蚁群算法(ant colony optimization, ACO)