こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MacOSXでのネットワークプログラミング

MacOSXでのネットワークプログラミング

現在、MacOSXでC言語を使用してネットワークプログラミングを勉強しています。

簡単なクライアントアプリケーションを作成して、サーバーに接続しようとするのですが、

connect関数のところで、エラーが発生して失敗してしまいます。

エラー関数を調べたところ、errno=13, 「Permission denied」がでています。

root権限で実行、ファイアウォールを無効にしても同じでした。

原因が分からないので、よろしくお願いします。

◯サンプルソース
int main()
{
struct sockaddr_in server;
int sock, n;
char buf[32];

sock = socket(AF_INET, SOCK_STREAM, 0);
server.sin_family = AF_INET;
server.sin_port = htons(80);
server.sin_addr.s_addr = inet_addr("www.google.co.jp");

n = connect(sock, (struct sockaddr *) &server, sizeof (server));

if (n == -1) {
printf("[ERROR](%d): %s\n", errno, strerror(errno));
} else {
memset(buf, 0, sizeof (buf));
n = read(sock, buf, sizeof (buf));
printf("%d, %s\n", n, buf);
}

close(sock);

return 0;
}


◯開発環境
MacOSX 10.6 (64bit)
Netbeans 6.8
gcc 4.2.1

投稿日時 - 2010-08-16 04:17:55

QNo.6112426

すぐに回答ほしいです

質問者が選んだベストアンサー

inet_addr("www.google.co.jp");
ここが違います。
inet_addrには、IPアドレスを表す文字列を渡す必要があります。
ホスト名からIPアドレスを得るには、gethostbyname()を使います。

投稿日時 - 2010-08-19 16:04:08

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問