请教高手,我下列VC代码哪里出错了?(50分)

  • 主题发起人 主题发起人 wxf_wxf
  • 开始时间 开始时间
W

wxf_wxf

Unregistered / Unconfirmed
GUEST, unregistred user!
// NetPass.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "WINSOCK2.H"
#define DATA "HELLO WORLD!"
int PASCAL FAR closesocket (SOCKET s);
int main(int argc,char* argv[])
{
int sockid;//socket 号
struct sockaddr_in server_addr;//服务器地址结构
struct hostent *hp;//主机信息结构
//以下代码是对SOCKET版本号进行协商(第一步)
WORD wVersionRequested;//需要的版本号
WSADATA wsaData;//协商时使用的变量
int err;//返回值变量
//设置需要的版本号1.1
wVersionRequested=MAKEWORD(1,1);
//启动SOCKET
err=WSAStartup(wVersionRequested,&wsaData);
//用户有没有找到一个可以使用的DLL,返回
if (err!=0)
{
perror("there is no dll to user");
return 0;
}
//确保WINDOWS SOCKETS DLL支持1.1
if ((LOBYTE(wsaData.wVersion)!=1)||(HIBYTE(wsaData.wVersion)!=1))
{
perror("there is not right DLL");
WSACleanup();

return 0;
}
///建立SOCKET(第二步)
sockid=socket(AF_INET,SOCK_STREAM,0);
if (sockid<0)
{
perror("there is error in opening stream socket");
return 0;
}
//设置地址域
server_addr.sin_family=AF_INET;
hp=gethostbyname(argv[1]);
if (hp==0)
{
//没有找到程序不能运行
return 0;
}
memcpy((char *)&amp;server_addr.sin_addr,(char *)hp->h_addr,hp->h_length);
//得到命令行中指定的服务器提供服务的端口号
server_addr.sin_port=htons((unsigned short)atoi(argv[2]));
if (connect(sockid,(struct sockaddr*)&amp;server_addr,sizeof(server_addr))<0)
{
perror("there is error connecting stream socket");
return 0;
}
//进行数据发送第四步
if ((send(sockid,DATA,sizeof(DATA),0))<0)
{
perror("there is error in sending thd data");
return 0;
}
else
{
printf("sending successfully.");
}
closesocket(sockid);
WSACleanup();
return 0;
}
出错信息如下:
NetPass.obj : error LNK2001: unresolved external symbol _closesocket@4
unresolved external symbol __imp__send@16
NetPass.obj : error LNK2001: unresolved external symbol __imp__connect@12
NetPass.obj : error LNK2001: unresolved external symbol __imp__htons@4
NetPass.obj : error LNK2001: unresolved external symbol __imp__gethostbyname@4
NetPass.obj : error LNK2001: unresolved external symbol __imp__socket@12
NetPass.obj : error LNK2001: unresolved external symbol __imp__WSACleanup@0
NetPass.obj : error LNK2001: unresolved external symbol __imp__WSAStartup@8
 
連接少了庫文件。好像是Wsock32.lib
 
这样加进去吗?
#include "Wsock32.lib"
 
将Wsock32.lib加入到你的工程里去
 
我用的是MICROSOFT VISUAL C++ 6.0,请问具体是如何操作的!
 
多人接受答案了。
 
靠,才給我那麽點分~
 
后退
顶部