写了一个本机通信的小代码在vc6.0上没有问题,一直vc.net上就出现这么多错误,朋友们看看是那里设置的不对吗,有代码与错误!

cndeer 2006-08-19 07:30:35
/*服务器端应用程序
***********************************************************************************************************
调试环境: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 已跳过
...全文
300 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
handsomerun 2006-08-19
  • 打赏
  • 举报
回复
当然可以咯,呵呵
cndeer 2006-08-19
  • 打赏
  • 举报
回复
结了贴了还想问一句

在vc.net里面可以像在vc6.0里面那样设置这个Ws2_32.lib吗?
而不用加:#pragma comment(lib,"Ws2_32.lib")
cndeer 2006-08-19
  • 打赏
  • 举报
回复
谢谢,我马上去试试的
snowbirdfly 2006-08-19
  • 打赏
  • 举报
回复
同意楼上~~~
WSACleanup提示出错~~
必定是库没有加进来~~~
可以在头文件下面添加一句
#pragma comment(lib,"Ws2_32.lib")
这样就可以了~~~
handsomerun 2006-08-19
  • 打赏
  • 举报
回复
lib库没有添加到你的工程

Ws2_32.lib

你的vs 6.0的工程肯定是添加了lib
然后你把代码移植到.net的时候,是不是忘记了,呵呵

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧