質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

IPv4

IPv4(Internet Protocol version 4)は、インターネットプロトコルの一つ。インターネットに繋がったコンピューターや機器を識別するためのIPアドレスを32ビット表記で表わします。しかしIPv4は、限界があるため、IPv6が次世代プロトコルとして注目されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

解決済

Pythonで外部PC(IPアドレス)とソケット通信できない。[WinError10061]

akisan55
akisan55

総合スコア49

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

IPv4

IPv4(Internet Protocol version 4)は、インターネットプロトコルの一つ。インターネットに繋がったコンピューターや機器を識別するためのIPアドレスを32ビット表記で表わします。しかしIPv4は、限界があるため、IPv6が次世代プロトコルとして注目されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

1回答

-1評価

0クリップ

316閲覧

投稿2022/04/25 12:42

編集2022/04/29 17:08

実現したい事

Pythonにおいて外部PCからソケットを受信したい。

概要

server側PCでTCPserverを実行してLISTENING状態にし、
client側PCからパケットをsendしたのですが、WinError10061が出ます。

ConnectionRefusedError: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。

socket通信で外部IPアドレスを受信するにはどうすればいいですか。

[server側]
IP = 0.0.0.0,port = 5555

[client側]
IP = 0.0.0.0,port = 5555

確認した事

・client側PCで''netstat -an''を実行しても''0.0.0.0:5555''は有りませんでした。
(server側では0.0.0.0:5555はLISTENING状態になっていました。)
・serverもclientも、自身のPCで通信したら、エラーは出なかった。
・ネットワークに接続しているか。

環境

server側:Windows11 64bit
IP:192.168.0.19
client側:Windows10 64bit
IP:192.168.0.13

ネットワーク構成

LANアダプターデフォルトゲートウェイ:192.168.0.1
サブネットマスク:255.255.255.0
(同じ一つのルーターを使用)
両方python 3.6で実行

補足

TCPserver.pyとTCPclient.pyは
https://github.com/oreilly-japan/black-hat-python-2e-ja/blob/master/chapter-02
を使いました。

補足2

説明不足で申し訳ありません。
環境情報を追加しました。

TCPServer.py

python

import socket import threading IP = '0.0.0.0' PORT = 5555 def main(): server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((IP, PORT)) server.listen(5) print(f'[*] Listening on {IP}:{PORT}') while True: client, address = server.accept() print(f'[*] Accepted connection from {address[0]}:{address[1]}') client_handler = threading.Thread(target=handle_client, args=(client,)) client_handler.start() def handle_client(client_socket): with client_socket as sock: request = sock.recv(1024) print(f'[*] Received: {request.decode("utf-8")}') sock.send(b'ACK') if __name__ == '__main__': main()

TCPclient.py

python

import socket target_host = '0.0.0.0' target_port = 5555 # ソケットオブジェクトの作成 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # サーバーへ接続 client.connect((target_host,target_port)) # データの送信 client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n") # データの受信 response = client.recv(4096) print(response.decode()) client.close()

tcpserver.pyでLISTENING状態にしてからnetstat -anを実行した結果

プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:2869 0.0.0.0:0 LISTENING TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING TCP 0.0.0.0:49669 0.0.0.0:0 LISTENING TCP 10.0.0.1:139 0.0.0.0:0 LISTENING ~~~~~~~~~~~~~~~~~~~

0.0.0.0 5555が存在しない。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai

2022/04/25 14:15

双方のマシンのIPアドレスはどうなってるんでしょうか。 また、ネットワーク構成はどうなってますか。
sigsegv

2022/04/26 00:40

補足のリンクの先のプログラムは serverもclientも IP=0.0.0.0 でないし port 5555 でもありません。 エラーが発生したプログラムの内容が分かるようにしてください

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

IPv4

IPv4(Internet Protocol version 4)は、インターネットプロトコルの一つ。インターネットに繋がったコンピューターや機器を識別するためのIPアドレスを32ビット表記で表わします。しかしIPv4は、限界があるため、IPv6が次世代プロトコルとして注目されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。