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」に修正しました。
- 追加コードや実行結果の前後に解説を追加し、記事の可読性を向上させました。

