gpt4 book ai didi

c++ - 尝试连接到 sftp 服务器时 InternetConnect 返回错误 12002

转载 作者:行者123 更新时间:2023-11-28 01:40:10 33 4
gpt4 key购买 nike

给定以下代码应该连接到 sftp 服务器并打印该服务器中第一个文件的名称。看起来它返回错误 12002这意味着请求超时。我试过用 2 个不同的服务器运行它。我的代码中是否存在根本性错误?

#include "stdafx.h"
#include <Windows.h>
#include <Wininet.h>
#include <iostream>

using namespace std;

#pragma comment(lib, "wininet.lib")

int main()
{

HINTERNET hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

if (hInternet == NULL)
{
_tprintf(_T("An error has occured while trying to open the internet connection\n"));
return 1;
}

HINTERNET hFTP = InternetConnect(
hInternet,
L"test.rebex.net", // this is a sftp server publicly available
22,
L"demo",
L"password",
INTERNET_SERVICE_FTP,
INTERNET_FLAG_PASSIVE,
0
);

if (hFTP == NULL)
{
cout << GetLastError() << endl;
_tprintf(_T("Couldn't connect to the ftp server\n"));
return 1;
}

_tprintf(_T("%d\n"), hFTP);

WIN32_FIND_DATA fd;

FtpFindFirstFile(hFTP, L".", &fd, INTERNET_FLAG_RELOAD, NULL);

_tprintf(_T("%s"), fd.cFileName);

InternetCloseHandle(hFTP);
InternetCloseHandle(hInternet);

return 0;
}

最佳答案

SFTP(基于 SSH 的 FTP)与 FTPS(基于 SSL 的 FTP)非常不同,后者可能正是您想要的。

但无论哪种方式,WinInet 根本不支持 SFTP 或 FTPS(INTERNET_FLAG_SECURE 标志仅支持 HTTPS)。

您将不得不使用另一个支持 SFTP/FTPS 的 FTP 库。

关于c++ - 尝试连接到 sftp 服务器时 InternetConnect 返回错误 12002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540276/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com