[解決済み] ソケットプログラミング パーミッション拒否
2022-02-10 04:21:50
質問内容
以下のコードはTCPサーバプログラムで、クライアントに "HELLO!"を返すだけです。
80番ポートでサーバを起動すると、bind()が返されます。
Permission denied
.
ポート12345はOKです。
このサーバープログラムで80番ポートを使用するにはどうすればよいですか?
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
main(){
int sock0;
struct sockaddr_in addr;
struct sockaddr_in client;
int len;
int sock;
char *message;
message = "HELLO !!";
sock0 = socket(AF_INET,SOCK_STREAM,0);
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
inet_pton(AF_INET,"127.0.0.1",&addr,sizeof(addr));
bind(sock0,(struct sockaddr *)&addr,sizeof(addr));
perror("bind");
len = sizeof(client);
sock = accept(sock0,(struct sockaddr *)&client,&len);
perror("accept");
write(sock,message,sizeof(message));
perror("write");
close(sock);
return 0;
}
解決方法は?
1024以下のポートは特権ポートとして扱われ、同じように特権を持つユーザでなければバインドすることができません。 ルート ).
1024を超えるものは誰でも自由に使うことができます。
OT:もうご存知かもしれませんが、例のポートはHTTPウェブサーバー用のものです。このポートをリッスンしているものは べきである HTTPも話せます。単純な "hello world" だけでは十分ではありません。)
関連
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み】strcmpが機能しない
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】警告:組み込み関数'printf'の非互換な暗黙の宣言(デフォルトで有効]
-
[解決済み】fgetsによるセグメンテーションフォールト(コアダンプ) - と思う。
-
[解決済み】「複数の定義」「最初に定義されたのはここです」エラーについて
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。
-
[解決済み】close vs shutdown socket?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】「複数の定義」「最初に定義されたのはここです」エラーについて
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】malloc():メモリ破壊
-
[解決済み】MPI通信でMPI_Bcastを使用する場合
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開
-
[解決済み】Linuxソケットのwrite()でBad File Descriptorが発生するC