c++ connect函数连接失败 解决方法

news2024/11/23 21:29:18

bool Connect() {

	//初始化网络
	WSADATA wsadata;
	WSAStartup(MAKEWORD(2, 2), &wsadata);
	if (0 != WSAStartup(MAKEWORD(2, 2), &wsadata))
		return false;

	if (LOBYTE(wsadata.wVersion) != 2 ||
		HIBYTE(wsadata.wVersion) != 2) {
		printf("请求协议版本失败!\n");
		return false;
	}

	//创建套接字
	sock_client = socket(AF_INET, SOCK_STREAM, 0);

	if (SOCKET_ERROR == sock_client) {

		printf("创建socket失败!\n");

		WSACleanup();

		return false;
	}
	 

	//解析域名为IP地址
	hostent* p = gethostbyname(sHost.c_str());

	if (p == NULL)
		return false;//解析失败

	//连接web服务器
	sockaddr_in sa;
	sa.sin_family = AF_INET;
	sa.sin_port = htons(80);//hrrp 默认端口80 https默认端口443
	//IP地址
	memcpy(&sa.sin_port, p->h_addr, 4);

	if (SOCKET_ERROR == connect(sock_client, (sockaddr*)&sa, sizeof(sa)) )
	{
		cout << "服务器连接失败" << endl;

		return false;
	}
	else
	{
		cout<<"服务器连接成功"<<endl;
		return true;
	}
	 
	

}

这样会输出 服务器连接失败;

解决方法??

我才发现是我code写错了


		if (SOCKET_ERROR == connect(sock_client, (sockaddr*)&sa, sizeof(sockaddr)) )
		{
			cout << "服务器连接失败" << endl;

			return false;
		}
		else
		{
			cout<<"服务器连接成功"<<endl;
			return true;
		}
	 

应该sizeof(sockaddr)而不是sa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12.JavaWeb-Node.js+创建Vue项目

1.Node.js的概念 传统的Web服务器中&#xff0c;每个请求都会创建一个线程&#xff0c;这会导致线程数的增加&#xff0c;从而影响服务器的性能和扩展性&#xff0c;Ryan Dahl借助Chrome的V8引擎提供的能力实现了Node.js——可以在服务端运行的JavaScript&#xff08;可以把Nod…

SQL-每日一题【197.上升的温度】

题目 表&#xff1a; Weather 编写一个 SQL 查询&#xff0c;来查找与之前&#xff08;昨天的&#xff09;日期相比温度更高的所有日期的 id 。 返回结果 不要求顺序 。 查询结果格式如下例。 示例 1&#xff1a; 解题思路 前置知识 交叉连接(CROSS JOIN) 即笛卡尔积&…

Vue Router 的params和query传参的使用和区别

//$router : 是路由操作对象&#xff0c;只写对象 //$route : 路由信息对象&#xff0c;只读对象//操作 路由跳转 this.$router.push({name:hello,params:{name:word,age:11} })//读取 路由参数接收 this.name this.$route.params.name; this.age this.$route.params.age; 1…

ADS笔记,时域和频域绘图

为防止遗忘&#xff0c;记录一下ADS的时间域和频谱图的绘制 在ADS中想得到电路的时域和频域图的话&#xff0c;可以用谐波平衡仿真HB或者选择一个准瞬态仿真控制器插入到原理图中来实现。 目录 方法一&#xff1a;谐波平衡仿真HB时域设置频域设置 方法二&#xff1a;准瞬态仿…

【Linux】git三板斧教程(免密提交配置)

git 什么是git&#xff1f;Linux下安装git基于git的一些商业网站介绍在gitee上创建仓库注册账号创建项目将仓库克隆到本地 git三板斧git三板斧第一招&#xff1a;git add三板斧第二招&#xff1a;git commit三板斧第三招&#xff1a;git push git免密码提交git log查看提交日志…

通俗易懂的期权入门知识汇总,硅铁期权即将上市适合用那种期权策略管理风险

【1】期权&#xff1a;是指某一标的物的买卖权或选择权。具有在某一限定时期内按某一指定的价格买进或卖出某一特定商品或合约的权利。这种权利是买进者拥有的一种权利&#xff0c;并非一种义务 【2】保证金&#xff1a;为确保执行&#xff0c;期权卖方存入的担保金 【3】多头…

Python flask入门教程(flask教程)(轻量级Web框架)

文章目录 flask能做什么&#xff1f;1. 路由和视图函数2. 模板引擎3. 表单处理4. 数据库集成5. 用户认证和授权6. 文件上传和下载7. RESTful API开发拓展&#xff1a;什么是RESTful API开发 8. 扩展性9. 轻量级和灵活性总结 flask入门1. 安装Flask2. 创建Flask应用3. 定义路由和…

深入理解MySQL事务和@Transactional注解:相似之处与作用解析

前言: 今天碰到几个面试人把Transactional注解,和mysql事务搞混,刻意来一篇讲一下这两者的区别,拒绝死记防止新人面试尴尬 先从简单介绍开始 MySQL事务 MySQL事务是数据库管理系统提供的一种机制&#xff0c;用于执行一组数据库操作&#xff0c;这些操作要么全部成功提交&a…

weblogic系列所有漏洞复现弱口令、CVE-2023-21839、CVE-2018-2894、CVE-2017-10271

文章目录 weblogic介绍:所用工具&#xff1a; weblogic弱口令漏洞详情&#xff1a;复现&#xff1a; Weblogic未授权远程代码执行漏洞 (CVE-2023-21839):漏洞详情:复现: Weblogic任意文件上传CVE-2018-2894漏洞描述&#xff1a;复现&#xff1a; 提提神Weblogic反序列化漏洞&am…

详解SystemVerilog中time slot的调度

1. 前言 本文讲一下SystemVerilog的time slot里的regions以及events的调度。SystemVerilog语言是根据离散事件执行模型定义的&#xff0c;由events驱动。SystemVerilog描述是由连接的执行thread或processes组成。Process是可衡量的&#xff0c;也具有状态&#xff0c;并且可以…

Java中操作文件(二)

目录 一、什么是数据流 二、InputStream概述 2.1、方法 2.2、说明 三、FileInputStream概述 3.1、构造方法 3.2、利用Scanner进行字符串读取&#xff0c;简化操作 四、OutputStream概述 4.1、方法 4.2、PrinterWriter简化写操作 五、小程序练习 示例1 示例…

3D渲染的最佳CPU推荐, 目前流行的 3D 渲染 CPU

在 3D 渲染领域&#xff0c;选择合适的 CPU 对于确保最佳性能和生产力至关重要。CPU 充当渲染工作站的动力源&#xff0c;处理复杂的计算并高效执行渲染任务。市场上有众多选择&#xff0c;了解 2023 年最流行的 3D 渲染 CPU 非常重要。 AMD 锐龙 9 5950X AMD Ryzen 9 5950X …

r‘./csv‘和f‘./csv‘有啥区别

r./csv 和 f./csv 在文件路径中具有不同的含义和用途。 r./csv&#xff1a;这是使用原始字符串&#xff08;raw string&#xff09;表示法来表示文件路径。在原始字符串中&#xff0c;反斜杠字符&#xff08;\&#xff09;不会被视为转义字符&#xff0c;而是作为普通字符。因…

Linux之CentOS_7.9部署MySQL_5.7静默安装实测验证安装以及测试连接全过程实操手册

前言&#xff1a;前面记录了Windows环境的MySQL的安装卸载及相关测试评估&#xff0c;这里记录下在Linux下MySQL的静默部署方式。当然还有更多的其他部署&#xff0c;大家可根据自身环境及学习来了解。 环境&#xff1a; 1、CentOS-7.9-x86_64-DVD-2009.iso 2、MySQL-5.7.42-…

7.4 【Linux】设置开机挂载

7.4.1 开机挂载 /etc/fstab 及 /etc/mtab 根目录 / 是必须挂载的﹐而且一定要先于其它 mount point 被挂载进来。 其它 mount point 必须为已创建的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则 &#xff08;FHS&#xff09; 所有 mount point 在同一时间之内﹐只…

Go Mutex 错过后悔的重要知识点

Go Mutex 的基本用法 Mutex 我们一般只会用到它的两个方法&#xff1a; Lock&#xff1a;获取互斥锁。(只会有一个协程可以获取到锁&#xff0c;通常用在临界区开始的地方。)Unlock: 释放互斥锁。(释放获取到的锁&#xff0c;通常用在临界区结束的地方。) Mutex 的模型可以用…

基于STM32麦克风阵列音频信号处理系统设计

v hezkz17进数字音频系统研究开发交流答疑 附录: ADAU1452音频处理系统

飞行动力学 - 第3节-滑翔性能、喷气式飞机最大最小速度 之 基础点摘要

飞行动力学 - 第3节-滑翔性能、喷气式飞机最大最小速度 之 基础点摘要 1. 滑翔机1.1 滑翔动力学方程1.2 滑翔机升阻比1.3 滑翔机性能 2. 喷气式飞机2.1 最小推力2.2 最大、最小速度 3. 参考资料 1. 滑翔机 1.1 滑翔动力学方程 注&#xff1a;这里的航迹角 γ \gamma γ按照右…

基于Python图像的作物种子数统计算法设计与应用(源码+文档+演示视频)

基于图像的作物种子数统计算法设计运用Qt作为开发工具&#xff0c;PyTorch库的使用&#xff0c;算法实现等。具体分为以下三部分&#xff1a;第一部分&#xff0c;采用数码影像技术对黄豆粒进行影像辨识技术。第二部分&#xff0c;前端页面功能包括图像识别技术模块、光源技术模…

音频转文字怎么弄?这几个音频转文字方法可以轻松实现

想象一下&#xff0c;你正在开车或忙着做家务&#xff0c;突然接到一通重要电话&#xff0c;却又没有纸和笔可以记录下来。这是应该怎么办呢&#xff0c;其实我们可以使用录音转文字的软件帮助我们把语音在线转换成文字就能轻松解决这个问题啦&#xff0c;但是又有小伙伴可能会…