您的位置:程序门 -> vc/mfc -> 网络编程



小弟刚使用vs2005,第一个程序就出现衔接不通过的问题,各位大侠帮帮忙。代码见内


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


小弟刚使用vs2005,第一个程序就出现衔接不通过的问题,各位大侠帮帮忙。代码见内
发表于:2007-12-21 22:51:02 楼主
错误
1> ------   已启动生成:   项目:   test,   配置:   debug   win32   ------
1> 正在编译...
1> test.cpp
1> 正在链接...
1> test.obj   :   error   lnk2019:   无法解析的外部符号   __imp__recvfrom@24,该符号在函数   _wmain   中被引用
1> test.obj   :   error   lnk2019:   无法解析的外部符号   __imp__bind@12,该符号在函数   _wmain   中被引用
1> test.obj   :   error   lnk2019:   无法解析的外部符号   __imp__htons@4,该符号在函数   _wmain   中被引用
1> test.obj   :   error   lnk2019:   无法解析的外部符号   __imp__inet_addr@4,该符号在函数   _wmain   中被引用
1> test.obj   :   error   lnk2019:   无法解析的外部符号   __imp__socket@12,该符号在函数   _wmain   中被引用
1> e:\visual   studio   project\win32\test\test\debug\test.exe   :   fatal   error   lnk1120:   5   个无法解析的外部命令
1> 生成日志保存在“file://e:\visual   studio   project\win32\test\test\test\debug\buildlog.htm”
1> test   -   6   个错误,0   个警告
==========   生成:   0   已成功,   1   已失败,   0   最新,   0   已跳过   ==========

代码:
头文件:
//   stdafx.h   :   标准系统包含文件的包含文件,
//   或是经常使用但不常更改的
//   特定于项目的包含文件
//

#pragma   once


#define   win32_lean_and_mean //   从   windows   头中排除极少使用的资料
#include   <stdio.h>
#include   <tchar.h>
#include   <winsock2.h>


//   todo:   在此处引用程序需要的其他头文件

源文件:
//   test.cpp   :   定义控制台应用程序的入口点。
//
#ifdef   _cplusplus  
extern   "c"{  
#endif  

#include   "stdafx.h"

char   aucudpbuffer[1600];

int   _tmain(int   argc,   _tchar*   argv[])
{
socket   radiussocket;
struct   sockaddr_in   listensocketaddr;
struct   sockaddr_in   senderaddr;
int   ulret   =   socket_error;
int   senderaddrsize;

radiussocket   =   socket(af_inet,   sock_dgram,   ipproto_udp);

if(   invalid_socket   ==   radiussocket   )
{
printf("\n   createsocket   error");
return   0xffffffff;
}

/*创建socket成功,下一步绑定socket进行监听*/
listensocketaddr.sin_addr.s_addr   =   inet_addr(   "127.0.0.1"   );
listensocketaddr.sin_family   =   af_inet;
listensocketaddr.sin_port   =   htons(1812);

ulret   =   bind(radiussocket,
(sockaddr   *)&listensocketaddr,  
sizeof(listensocketaddr));
if(   socket_error   ==   ulret   )
{
printf("\n   bind   socket   error");
return   0xffffffff;
}
senderaddrsize   =   sizeof(senderaddr);
while(true)
{
recvfrom(radiussocket,  
aucudpbuffer,  
1500,
0,
(sockaddr   *)&senderaddr,  
&senderaddrsize);
}

return   0;
}

#ifdef     _cplusplus  
}  
#endif

发表于:2007-12-22 10:54:101楼 得分:0
少包含这个头文件了
#include   "socket.h"
发表于:2007-12-22 11:11:322楼 得分:0
刚才看错了,加上这句就行了
#pragma   comment(lib,"ws2_32.lib")
发表于:2007-12-22 11:12:003楼 得分:0
刚才看错了,加上这句就行了
#pragma   comment(lib,"ws2_32.lib")


快速检索

最新资讯
热门点击