C++ C/S结构网络编程客户端代码出错,具体问题如下:
#include<winsock2.h>#pragmacomment(lib,"Ws2_32.lib")#include<iostream>usingnamespaces...
#include <winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
#include <iostream>
using namespace std;
#define PORT 7788
void main()
{
int ret;
SOCKET s;
//cout<<"初始化网络环境..."<<endl;
WSADATA wsaData;
if((ret=WSAStartup(MAKEWORD(2,2),&wsaData))!=0)
{
printf("初始化WinSock出错");
return ;
}//使用WinSock前都应该调用此函数,用以选择适合的库版本,在此为2.2
//定义客户端socket变量
s=socket(AF_INET,SOCK_STREAM,0);
if(s == INVALID_SOCKET)
{
printf("建立socket出错");
return ;
}
//定义服务器端地址信息
struct sockaddr_in serv;
//设置服务器地址信息
serv.sin_family= AF_INET;
serv.sin_port = htons(PORT);
//设置服务器端IP地址
serv.sin_addr.s_addr=inet_addr("192.168.2.29");
//请求与服务器建立TCP连接
if(connect(s,(struct sockaddr *)&serv,sizeof(serv)) == INVALID_SOCKET)
{
printf("请求建立连接失败\n");
return ;
}
printf("已经成功和服务器建立连接");
//定义一个长为1024 的数组,用来存放发送和接收的数据
char buf[1024];
memset(buf,0,sizeof(buf));
strcpy(buf, " are you ready!\n");
ret = send(s,buf,sizeof(buf),0);
printf("发送数据给服务器。...");
if(ret == SOCKET_ERROR)
{
printf("发送数据出错!\n");
return ;
}
closesocket(s);
WSACleanup();
}
代码贴错来了,编译没问题。但是执行会报错,执行到SOCKET s;下一行空白处出错,错误截图如下:
求大神们指点 展开
#pragma comment(lib,"Ws2_32.lib")
#include <iostream>
using namespace std;
#define PORT 7788
void main()
{
int ret;
SOCKET s;
//cout<<"初始化网络环境..."<<endl;
WSADATA wsaData;
if((ret=WSAStartup(MAKEWORD(2,2),&wsaData))!=0)
{
printf("初始化WinSock出错");
return ;
}//使用WinSock前都应该调用此函数,用以选择适合的库版本,在此为2.2
//定义客户端socket变量
s=socket(AF_INET,SOCK_STREAM,0);
if(s == INVALID_SOCKET)
{
printf("建立socket出错");
return ;
}
//定义服务器端地址信息
struct sockaddr_in serv;
//设置服务器地址信息
serv.sin_family= AF_INET;
serv.sin_port = htons(PORT);
//设置服务器端IP地址
serv.sin_addr.s_addr=inet_addr("192.168.2.29");
//请求与服务器建立TCP连接
if(connect(s,(struct sockaddr *)&serv,sizeof(serv)) == INVALID_SOCKET)
{
printf("请求建立连接失败\n");
return ;
}
printf("已经成功和服务器建立连接");
//定义一个长为1024 的数组,用来存放发送和接收的数据
char buf[1024];
memset(buf,0,sizeof(buf));
strcpy(buf, " are you ready!\n");
ret = send(s,buf,sizeof(buf),0);
printf("发送数据给服务器。...");
if(ret == SOCKET_ERROR)
{
printf("发送数据出错!\n");
return ;
}
closesocket(s);
WSACleanup();
}
代码贴错来了,编译没问题。但是执行会报错,执行到SOCKET s;下一行空白处出错,错误截图如下:
求大神们指点 展开
3个回答
展开全部
提示中不是写了吗,s没有初始化造成的,vs的语法校验比较严格。
SOCKET s = 0;
SOCKET s = 0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询