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

Python
本ページはプロモーションが含まれています

エラーメッセージ

ここのサイトを参考にさせていただき、Pythonを使ったWindowsの自動化をしようとしていた時に

“PythonでTCP通信のエラー: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。”

というメッセージが表示されました。

環境

このメッセージはPythonからHTTP通信を行う時に発生するメッセージなので色々な条件で起きます。

発生した状況としては、外部への通信というより、ローカルWindowsへのアクセス時に特定のポートを開いて、PythonからHTTP通信からアクセスという流れです。
使用していたものは、

  • Windows10
  • robotframework-appiumlibrary
  • WindowsAppDriver.exe

でした。
Pythonで『robotframework-appiumlibrary』と『WindowsAppDriver.exe』を使ってWindowsを動かすなんてこもと出来るみたいです。

原因と対策

2023/06/22追記
一般的にこのエラーが起きる原因は次が多いです。

  1. サーバーが動作していない、またはネットワーク上でアクセス可能ではない: 指定したIPアドレスとポート番号でサーバーが実行されているかをまず確認してみてください。
    サーバーが正しく動作していてネットワーク上で利用可能な状態にあるかを確認するには、ネットワークユーティリティ(例:pingtelnet等)を使うのがいいと思います。
  2. ファイアウォールによるブロック: サーバーコンピューターまたはクライアントコンピューターのファイアウォールが接続をブロックしている場合もあります。
    この場合、該当のファイアウォール設定を確認し、必要であればブロックを解除するなどしてみてください。
  3. ポートが既に使用中: サーバーが指定したポートを他のプロセスが既に使用中であった場合、新たな接続を受け入れることができません。
    ポートが既に使用中でないこと、または適切なポートが開放されていることを確認してみてください。

追記ここまで

僕の起きた環境での対策は実はすごく簡単でした。
ただ、初めてこれをした時は僕はつまづきました。
同じことをしている人がいる場合は参考にしてください。

対処方法はダウンロードした『WindowsAppDriver.exe』を起動して、コマンドプロンプトを閉じない(待ちがってキーを押してプロンプトを閉じがちです)

WindowsAppDriver.exeを起動する前に
netstat -an
を実行するとわかりますが、参考サイトのプログラムを動かすとポート「4723(ポートは任意で変更可能)」が開いていません。
ですが、WindowsAppDriver.exeを起動して
netstat -an
を実行すると、4723ポートが開いている事がわかります。
恐らく初めてWindowsAppDriver.exeを使って自動化するとこの問題に直面すると思います。
参考になれば幸いです。
タイトルとURLをコピーしました