【Python】TCPクライアント(Python 3.8.5、socketをimport、googleに接続)

ネットワーク・RFCカテゴリを表すパンダのイラスト ネットワーク・RFC

Pythonの標準ライブラリであるsocketモジュールを使用して、シンプルなTCPクライアントを作成し、GoogleのWebサーバーへHTTPリクエストを送信してレスポンスを受信する基本的な手順を紹介します。

前提条件・環境

  • Python 3.8.5
  • インターネット接続環境(外部ホストへのソケット通信)

TCPクライアントのソースコード

以下のコードを TCPclient.py というファイル名で保存します。

#-*- coding: utf-8 -*-

import socket

# 接続先はGoogle
target_host = "www.google.com"
target_port = 80

# ソケットオブジェクトの生成(IPv4, TCP)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# サーバーへ接続
client.connect((target_host, target_port))

# HTTPリクエストデータの送信
client.send(("GET / HTTP/1.1\r\nHOST: google.com\r\n\r\n").encode())

# サーバーからのデータ受信(最大4096バイト)
response = client.recv(4096)

print(response)

実行方法と結果

ターミナルからスクリプトを実行します。

papanda925@DESKTOP-AJDBM1N:~$ /usr/bin/python3 /home/papanda925/TCPclient.py
b'HTTP/1.1 301 Moved Permanently\r\nLocation: http://www.google.com/\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Sun, 31 Jan 2021 15:00:19 GMT\r\nExpires: Tue, 02 Mar 2021 15:00:19 GMT\r\nCache-Control: public, max-age=2592000\r\nServer: gws\r\nContent-Length: 219\r\nX-XSS-Protection: 0\r\nX-Frame-Options: SAMEORIGIN\r\n\r\n<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF="http://www.google.com/">here</A>.\r\n</BODY></HTML>\r\n'
papanda925@DESKTOP-AJDBM1N:~$ 

解説

実行結果に 301 Moved Permanently が返されていますが、これはGoogleのサーバーから正常に応答が届いている証拠です。

301 Moved Permanently とは、リクエストされたリソースが Location ヘッダーで示されたURLへ完全に移動したことを示しています。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更タイトル内の誤字「impoet」を「import」に修正しました。
  • 追加コードや実行結果の前後に解説を追加し、記事の可読性を向上させました。

文書情報

記事タイトル
【Python】TCPクライアント(Python 3.8.5、socketをimport、googleに接続)
作成日
更新日
Source URL
https://papanda925.com/?p=1447

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました