-2

次のコードを使用して、localhost ( TOR ) のポート 9150 に接続しようとしています。

WORD wVersionRequested = MAKEWORD(2,0);
WSADATA wsaData;
if(WSAStartup(wVersionRequested,&wsaData) != 0)
{
    return 1;
}
int fd = socket(AF_INET, SOCK_STREAM, 0);
if(fd < 0)
{
    printf("error 0");
}

struct sockaddr_in saddr;
saddr.sin_port = htons(9150);
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(fd, (struct sockaddr *)&saddr, sizeof(saddr));
if(fd > 0)
{
    printf("error 1");
}

「エラー1」で失敗します。TOR/Vidalia はこのポートで実行されており、すべて問題ないため、コードにエラーが含まれている必要があります。お願い助けて。

4

1 に答える 1

1

ここでのマイナーなこと:

#include <stdio.h> /* for perror() */

WORD wVersionRequested = MAKEWORD(2,0);
WSADATA wsaData;
if(WSAStartup(wVersionRequested,&wsaData) != 0)
{
    return 1;
}

int fd = socket(AF_INET, SOCK_STREAM, 0);
int rv = 0;

if(fd < 0)
{
     perror("socket");
     exit(fd); /* or return */
}

struct sockaddr_in saddr;
saddr.sin_port = htons(9150);
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr("127.0.0.1");

あなたの核心の問題は以下のコードにあります

rv = connect(fd, (struct sockaddr *)&saddr, sizeof(saddr));
if(rv < 0)
{
     perror("connect");
     exit(rv); /* or return */
}
于 2013-08-09T00:00:46.613 に答える