// winsockets.cpp : 定义控制台应用程序的入口点。
///*
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ cout<<"fjalsd";
system("pause");
return 0;
} */ /***********************************************************************************************
调试环境:vc7.0
服务器ip地址: 由系统指定
服务器端口号: 5050
程序名称: winsockets.cpp
程序功能:服务器端的程序当有客户提出连接请求时,在端口5050与客户端进行tcp连接,连接成功后,显示客
户ip地址与端口号,并给客户发送消息,如果发送正确则显示发送的字节数
命今格式:winsockets
************************************************************************************************/
#include <Winsock2.h>
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
//服务器使用默认的端口号5050
#define DEFAULT_PORT 5050
int main(){ int iport=DEFAULT_PORT;
WSADATA wsaData;
SOCKET sListen;
//客户地址长度
int iLen;
//发送数据长度;
int iSend;
//服务器与管户的地址;
struct sockaddr_in ser, cli;
printf("--------------------------------------------------");
printf("Server waiting \n");
printf("--------------------------------------------------");
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0){
printf("Faild to load winsock.\n");
return -1;
}
//创建服务器端socktet口
sLiten=socket(AF_INET,SOCK_STREAM,0);
if(sLiten=INVALID_SOCKET){
printf("socket() Falid:%d\n",WSAGetLastError());
return -1;
}
//建立服务器端地址
ser.sin_family=AF_INET;
//htons()把一个双字节主机字节顺序的数转换为网络字节顺序
ser.sin_port=htons(iPort);
//htonl()把一个四字节主机地址转化为网络字节顺序;
ser.sin_addr.s_addr=htonl(INADDR_ANY);
//使用系统指定的ip地址
if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser),)==SOCKET_ERROR){
printf("bind() Faild:%d\n",WSAGetError());
return -1;
}
//进入监听壮态
if(listen(sListen,5)==SOCKET_ERROR){
printf("bind() Faild:%d\n",WSAGetError());
return -1 ;}
//取客户端的地址长度
iLen=sizeof(cli);
//进入一个无限循环
while(1){
sAccept=accept(sListen,(struct sockaddr*)&cli,&iLen);
if(sAccept==INVALD_SOCKET){
printf("xx() Faild:%d\n",WSAGetError());
break ;
}
//输出客户端ip地址与 端口号
printf("Accept client IP:[%s],port:[%d]\n",inet_ntoa(cli.sin_addr),ntoha(cli.sin_port));
//给连接的客户发送信息
iSend=send(sAccept,buf,sizeof(buf),0);
if(iSend==SOCKET_ERROR){
printf("xx() Faild:%d\n",WSAGetError());
break ;
}
else if(iSend==0){
break;
}
else
{
printf("send() byte:%d",iSend); printf("--------------------------------------------------\n");
}
closesocket(sAccept);
}
closesocket(iListen);
WSACleanup():
}大家看看这代码有没有问题
是不是我的.net2003配置不行?
抄书也会这样多错误
///*
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ cout<<"fjalsd";
system("pause");
return 0;
} */ /***********************************************************************************************
调试环境:vc7.0
服务器ip地址: 由系统指定
服务器端口号: 5050
程序名称: winsockets.cpp
程序功能:服务器端的程序当有客户提出连接请求时,在端口5050与客户端进行tcp连接,连接成功后,显示客
户ip地址与端口号,并给客户发送消息,如果发送正确则显示发送的字节数
命今格式:winsockets
************************************************************************************************/
#include <Winsock2.h>
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
//服务器使用默认的端口号5050
#define DEFAULT_PORT 5050
int main(){ int iport=DEFAULT_PORT;
WSADATA wsaData;
SOCKET sListen;
//客户地址长度
int iLen;
//发送数据长度;
int iSend;
//服务器与管户的地址;
struct sockaddr_in ser, cli;
printf("--------------------------------------------------");
printf("Server waiting \n");
printf("--------------------------------------------------");
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0){
printf("Faild to load winsock.\n");
return -1;
}
//创建服务器端socktet口
sLiten=socket(AF_INET,SOCK_STREAM,0);
if(sLiten=INVALID_SOCKET){
printf("socket() Falid:%d\n",WSAGetLastError());
return -1;
}
//建立服务器端地址
ser.sin_family=AF_INET;
//htons()把一个双字节主机字节顺序的数转换为网络字节顺序
ser.sin_port=htons(iPort);
//htonl()把一个四字节主机地址转化为网络字节顺序;
ser.sin_addr.s_addr=htonl(INADDR_ANY);
//使用系统指定的ip地址
if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser),)==SOCKET_ERROR){
printf("bind() Faild:%d\n",WSAGetError());
return -1;
}
//进入监听壮态
if(listen(sListen,5)==SOCKET_ERROR){
printf("bind() Faild:%d\n",WSAGetError());
return -1 ;}
//取客户端的地址长度
iLen=sizeof(cli);
//进入一个无限循环
while(1){
sAccept=accept(sListen,(struct sockaddr*)&cli,&iLen);
if(sAccept==INVALD_SOCKET){
printf("xx() Faild:%d\n",WSAGetError());
break ;
}
//输出客户端ip地址与 端口号
printf("Accept client IP:[%s],port:[%d]\n",inet_ntoa(cli.sin_addr),ntoha(cli.sin_port));
//给连接的客户发送信息
iSend=send(sAccept,buf,sizeof(buf),0);
if(iSend==SOCKET_ERROR){
printf("xx() Faild:%d\n",WSAGetError());
break ;
}
else if(iSend==0){
break;
}
else
{
printf("send() byte:%d",iSend); printf("--------------------------------------------------\n");
}
closesocket(sAccept);
}
closesocket(iListen);
WSACleanup():
}大家看看这代码有没有问题
是不是我的.net2003配置不行?
抄书也会这样多错误
解决方案 »
- 请大家推荐一个好的VC界面库
- 完成端口有没必要开一个发送线程?
- Edit Control的使用问题
- 网络,参与者有分!
- 有没有比较好的实现图文混合打印的DLL源码?急!高分!!
- bstr * 型变量 在vbscript里面调用 我传递string 类型 怎么说类型不匹配的错误?
- 如何改变CFontDialog的默认颜色??在线给分!!!!
- 请问下VS2008中安装与部署的问题啊,实在不知道该放到哪个区
- 大家快帮帮忙吧!!!我的聊天室程序出问题了????
- 关于《COM原理和应用》中的小问题(高分相赠)
- 有谁知道怎么在windowsXP下安装studio.net呢????????????
- 有没有实现图片界面的例子?
出错:
/////////////////////////////////
------ 已启动生成: 项目: winsockets, 配置: Debug Win32 ------正在编译...
winsockets.cpp
e:\testvc\winsockets\winsockets\winsockets.cpp(49) : error C2065: “sLiten” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(50) : error C3861: “sLiten”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(57) : error C2065: “iPort” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(61) : error C2059: 语法错误 : “)”
e:\testvc\winsockets\winsockets\winsockets.cpp(61) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
e:\testvc\winsockets\winsockets\winsockets.cpp(62) : error C3861: “WSAGetError”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(67) : error C3861: “WSAGetError”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(73) : error C2065: “sAccept” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(74) : error C2065: “INVALD_SOCKET” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(74) : error C3861: “sAccept”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(75) : error C3861: “WSAGetError”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(79) : error C3861: “ntoha”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(81) : error C2065: “buf” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(81) : error C2070: “'unknown-type'”: 非法的 sizeof 操作数
e:\testvc\winsockets\winsockets\winsockets.cpp(81) : error C3861: “sAccept”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(81) : error C3861: “buf”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(83) : error C3861: “WSAGetError”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(95) : error C3861: “sAccept”: 即使使用参数相关的查找,也未找到标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(97) : error C2065: “iListen” : 未声明的标识符
e:\testvc\winsockets\winsockets\winsockets.cpp(98) : error C2143: 语法错误 : 缺少“;”(在“:”的前面)
e:\testvc\winsockets\winsockets\winsockets.cpp(98) : error C2143: 语法错误 : 缺少“;”(在“:”的前面)生成日志保存在“file://e:\testvc\winsockets\winsockets\Debug\BuildLog.htm”中
winsockets - 21 错误,0 警告
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过
#pragma comment(lib, "ws2_32.lib")倒数第二行WSACleanup():中,:改为;