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

C++简单网络编程,该怎么解决

2012-09-06 
C++简单网络编程我的程序中有一个错误,老是调不出来,网上也没找到解决办法,求高人指点!!!#includewinsock

C++简单网络编程
我的程序中有一个错误,老是调不出来,网上也没找到解决办法,求高人指点!!!
#include<winsock2.h>
#include<stdio.h>
#include<windows.h>
#pragma comment(lib,"ws2_32.lib")

int main(int argc,char *argv[])
{
//判断是否输入了IP地址和端口号
if(argc != 3)
{
printf("Usage: %s IPAddress PortNumber \n",argv[0]);
exit(-1);
}
// 把字符串的IP地址转化为Unsigned long
unsigned long ip;
if((ip=inet_addr(argv[1])) == INADDR_NONE)
{
printf("不合法的IP地址: %s",argv[1]);
exit(-1);
}
//把端口号转化为整数
short port;
if((port = atoi(argv[2])) == 0)
{
printf("端口号有误!");
exit(-1);
}
printf("Connecting to %s : %d.......\n",inet_ntoa(*(in_addr*)&ip),port);
WSADATA wsa;
// 初始化套接字DLL
if(WSAStartup(MAKEWORD(2,2),&wsa)!=0)
{
printf("套接字初始化失败!");
exit(-1);
}
//创建套接字
SOCKET socket;
if((socket=(socket(PF_INET,SOCK_STREAM,0))) == INVALID_SOCKET){
printf("创建套接字失败!");
exit(-1);
}
struct sockaddr_in serverAddress;
memset(&serverAddress,0,sizeof(sockaddr_in));
serverAddress.sin_family = AF_INET;
serverAddress.sin_addr.S_un.S_addr =ip;
serverAddress.sin_port = htons(port);
//建立和服务器的连接
if(connect(socket,(sockaddr*)&serverAddress,sizeof(serverAddress))== SOCKET_ERROR)
{
printf(" 建立连接失败!");
exit(-1);
}
char buf[4096];
while(1)
{
printf(">");
//从控制台读取一行数据
gets(buf);
//发送给服务器
if(send(socket,buf,strlen(buf),0) == SOCKET_ERROR)
{
printf("发送数据失败!");
exit(-1);
}
int bytes;
if((bytes = recv(socket,buf,sizeof(buf),0)) == SOCKET_ERROR)
{
printf("接收数据失败!");
exit(-1);
}
buf[bytes] = '\0';
printf("Message from %s : %s \n ",inet_ntoa(serverAddress.sin_addr),buf);

}
// 清理套接字占用的资源
WSACleanup();
return 0;
}
错误提示如下:1>d:\visual studio 2005\projects\test\test\client.cpp(38) : error C2064: term does not evaluate to a function taking 3 arguments
1>d:\visual studio 2005\projects\test\test\client.cpp(61) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data

[解决办法]
socket变量不要和socket()函数同名,试试。

热点排行