パブリックIPアドレスをトンネルまたはコネクタとして使用せずに、インターネットから両方のアプリケーションを直接接続できるかどうかを尋ねています。
このコードを使用して、異なるネットワーク接続から各コンピューターを接続しました。
FTP を使用してパブリック IP アドレスに送信するファイルをアップロードするクライアント
function UploadToFtp(serverName, userid, password, fileName: string): LongBool;
var
hNet, hCon: HINTERNET;
begin
Result := False;
hNet := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
if Assigned(hNet) then
begin
hCon := InternetConnect(hNet, PChar(servername),
INTERNET_DEFAULT_FTP_PORT, PChar(userid), PChar(password),
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0
);
if Assigned(hCon) then
begin
Result := FtpPutFile(hCon, PChar(fileName),
PChar(ExtractFileName(fileName)), FTP_TRANSFER_TYPE_ASCII, 0
);
InternetCloseHandle(hCon);
end else ShowMessage(SysErrorMessage(GetLastError));
InternetCloseHandle(hNet);
end else ShowMessage(SysErrorMessage(GetLastError));
end;
パブリック IP アドレスから情報を収集するサーバー。
function DownLoadFileFromFTP(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
hopen, hconnect: HINTERNET;
good:boolean;
begin
hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
good := FtpGetFile(hconnect, pchar(remotefile), pchar(localfile), false, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0);
InternetCloseHandle(hconnect);
Result := good;
end;
> FTP を使わずに各コンピュータを直接接続する方法はありますか? ソケットのことですか? または、異なるネットワークから2台のコンピューター間を直接接続する手段はありますか?
各コンピュータで (Delphi の Web サービス) Web コンポーネントを使用していますか? 何をすべきか、またはそれぞれを直接接続するオプションが本当にわかりません。
ありがとう