写了一个本机通信的小代码在vc6.0上没有问题,一直vc.net上就出现这么多错误,朋友们看看是那里设置的不对吗,有代码与错误!
/*服务器端应用程序
***********************************************************************************************************
调试环境:VC.NET
服务器IP地址:由系统指定
服务器端口号:5050
程序名称:server.cpp
程序功能:服务器端的程序,当有客户提出链接请求时,在端品5050与客户进行TCP链接,连接成功后,显示客户IP地址与端口号
并给客户端发送数据"hi I am a server!" 如果发送正确则显示发送的字节数
命令格式:server
************************************************************************************************************
*/
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
//服务器使用的端口号为5050
#define DEFAULT_PORT 5050
void main ()
{
int iPort=DEFAULT_PORT;
WSADATA wsaData;
SOCKET sListen,
sAccept;
//客户地址长度
int iLen;
//发送数据的长度
int iSend;
//要发送给客户端的数据
char buf[]="hi,iam a server!";
//服务器与客户的地址
struct sockaddr_in ser,
cli;
printf("------------------------------------------\n");
printf("Server wating \n");
printf("-----------------------------------------\n");
//用wsastartup检查系统协议栈的安装情况
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("Failed to load Winsock\n");
return ;
}
//创建服务器端套接口
sListen=socket(AF_INET,SOCK_STREAM,0);
if(sListen==INVALID_SOCKET)
{
printf("socket() Failed:%d\n",WSAGetLastError());
return ;
}
//以下建立服务器端地址
ser.sin_family=AF_INET;
ser.sin_port=htons(iPort);
ser.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_ERROR)
{
printf("bind() Failed:%d\n",WSAGetLastError());
return ;
}
//进入监听壮态
if(listen(sListen,5)==SOCKET_ERROR)
{
printf("listen() Failed:%d\n",WSAGetLastError());
return ;
}
//初始化客户地址长度参数
iLen=sizeof(cli);
//进入一个无限循环,等待客户的连接请求
while(1)
{
sAccept=accept(sListen,(struct sockaddr*)&cli,&iLen);
if(sAccept==INVALID_SOCKET)
{
printf("accept() Falied:%d\n",WSAGetLastError());
return ;
}
printf("client IP:[%s],port:[%d]\n",inet_ntoa(cli.sin_addr),htons(cli.sin_port));
//给连接的客户发送信息
iSend=send(sAccept,buf,sizeof(buf),0);
if(iSend==SOCKET_ERROR)
{
printf("iSend() Failed:%d\n",WSAGetLastError());
return ;
}
else if(iSend==0)
break ;
else
{
printf("iSend() :%d\n",iSend);
printf("-------------------------------------");
}
closesocket(sAccept);
}
closesocket(sListen);
WSACleanup();
}
******************************************************************************
上面是代码
下面是错误
*********************************************************************************
------ 已启动全部重新生成: 项目: server, 配置: Debug Win32 ------
正在删除项目“server”(配置“Debug|Win32”)的中间文件和输出文件。
正在编译...
server.cpp
正在链接...
server.obj : error LNK2019: 无法解析的外部符号 __imp__WSACleanup@0 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__closesocket@4 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__send@16 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__accept@12 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__listen@8 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__bind@12 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__htonl@4 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__htons@4 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__WSAGetLastError@0 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__socket@12 ,该符号在函数 _main 中被引用
server.obj : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8 ,该符号在函数 _main 中被引用
Debug/server.exe : fatal error LNK1120: 12 个无法解析的外部命令
生成日志保存在“file://e:\cpptest\server\Debug\BuildLog.htm”中
server - 13 错误,0 警告
---------------------- 完成 ---------------------
全部重新生成: 0 已成功, 1 已失败, 0 已跳过