ソケットについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あかさん。

ソケットについて

#1

投稿記事 by あかさん。 » 7年前

Pythonでソケットのところ勉強してるんですが、プログラムが実行されません。また仕組みがイマイチ理解できません。

クライアントのサーバー接続のところでエラーが発生します。ホストとポート番号は決まっているのでしょうか?よく127.0.0.1という番号を見かけますが基礎のところなので詳しく知りたいです。4096のところもよく分かりません。数字は決まっているのでしょうか?本ではホストのところはwww.google.comとなっており、ポートは80でした。

サイバーセキュリティプログラミングの本より

コード:


import socket

host="127.0.0.1"
port=80

client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

client.connect((host,port))

client.send("Hey")

response = client.recv(4096)

print(response)

[code/]

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: ソケットについて

#2

投稿記事 by みけCAT » 7年前

ホストは自分が接続したい相手のアドレス(ドメインまたはIPアドレス)を指定します。
127.0.0.1はローカル(クライアントを実行しているコンピューター)に接続したい時に使います。

ポート番号は使いたいサービス(HTTP(ウェブ)やSMTP(メール送信)など)によってデフォルトのものが決まっています。
自分で適当なサーバーを立てる場合は、実験程度なら適当な数字を指定すればいいでしょう。
ただし、
・小さい(1023以下)ポート番号のサーバーはroot権限が無いと立てられないことがあります
・ポート番号は16ビットなので65535までです
・仕様上「勝手に使っていい」のは49152番以降のようです (ポート番号 - Wikipedia)

4096はこの呼び出しで受信する最大サイズですね。
18.1. socket — 低水準ネットワークインターフェイス — Python 3.6.4 ドキュメント
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

返信

“C言語何でも質問掲示板” へ戻る