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を使って自動化するとこの問題に直面すると思います。
参考になれば幸いです。
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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