首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS2008环境上,基于Socket控件的网络通信编程有关问题

2013-01-01 
VS2008环境下,基于Socket控件的网络通信编程问题我是一名在校学生。在学习计算机网络这门课程时,有这么一个

VS2008环境下,基于Socket控件的网络通信编程问题
我是一名在校学生。在学习计算机网络这门课程时,有这么一个实验--基于Socket控件的网络通信编程
书上的实验环境是:WINDOWS操作系统,VC++6.0
服务器端程序 SocketSrv.cpp
#include<stdio.h>
#include<Winsock2.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if(err!=0)
{
return;
}
if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wHighVersion)!=1)
{
WSACleanup();
return;
}
SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrClient,&len);
char sendBuf[100];
sprintf(sendBuf,"Welcome %s to http://www.njit.edu.cn",inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
char recvBuf[100] = {0};
recv(sockConn,recvBuf,100,0);
printf("%s\n",recvBuf);
while(1)
{
recv(sockConn,recvBuf,100,0);
printf("%s\n",recvBuf);
memset(sendBuf,0,sizeof(sendBuf));
strcat(sendBuf,"echo ");
strcat(sendBuf,recvBuf);
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
if(strcmp(recvBuf,"end")==0)
{
break;
}
}
closesocket(sockConn);
}
}
客户端程序TcpClient.cpp
代码省略。
=====================================================分割======================================
我在VS2008环境下编写了服务器端程序(SocketSrv.cpp)
编译无报错。运行时提示socket编程的好几个函数如socket(),WSAStartup()等等都无法识别。好像是什么连接错误,附图:
VS2008环境上,基于Socket控件的网络通信编程有关问题
VS2008环境上,基于Socket控件的网络通信编程有关问题
PS: 我在创建项目的时候选的是控制台应用程序--空项目选项
VS2008环境上,基于Socket控件的网络通信编程有关问题
请各位大神帮忙看看。
[解决办法]
所需的头文件、库文件和DLL
对于目前使用最广泛的Windows Socket2.0版本,所需的一些文件如下(以安装了VC6为例说明其物理位置):

l         头文件winsock2.h,通常处于C:"Program Files"Microsoft Visual Studio"VC98"INCLUDE;查看该头文件可知其中又包含了windows.h和pshpack4.h头文件,因此在windows中的一些常用API都可以使用;

l         库文件Ws2_32.lib,通常处于C:"Program Files"Microsoft Visual Studio"VC98"Lib;

l         DLL文件Ws2_32.dll,通常处于C:"WINDOWS"system32。


[解决办法]
项目、属性、C/C++、附加包含目录:填写附加头文件所在目录 分号间隔多项
项目、属性、链接器、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目、属性、链接器(点前面的+展开)、输入、附加依赖项:填写附加依赖库的名字.lib 空格间隔多项

热点排行