web-soket通信のモジュールを使ったプログラムを作っていて、動作自体は問題なく動いているのですが、10回に1回程度、以下の例外が発生します。
python
1import sys 2import time 3from obswebsocket import obsws, requests 4 5host = "localhost" 6port = 4444 7password = "secret" 8 9args = sys.argv 10 11try: 12 ws = obsws(host, port, password) 13 ws.connect() 14except: 15 print("ERR1") 16 17time.sleep(1) 18 19print(args[1]) 20 21try: 22 ws.disconnect() 23except: 24 print("ERR2") 25
C:\Users\XXXX\Desktop\000>python test2.py 004
004
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Program Files\Python37\lib\threading.py", line 926, in _bootstrap_in
er
self.run()
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\obswebsoc
et\core.py", line 201, in run
message = self.ws.recv()
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 313, in recv
opcode, data = self.recv_data()
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 330, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 357, in recv_data_frame
self.send_close()
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 390, in send_close
self.send(struct.pack('!H', status) + reason, ABNF.OPCODE_CLOSE)
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 253, in send
return self.send_frame(frame)
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 278, in send_frame
l = self._send(data)
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_core.py", line 448, in _send
return send(self.sock, data)
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_socket.py", line 157, in send
return _send()
File "C:\Users\XXXX\AppData\Roaming\Python\Python37\site-packages\websocket
_socket.py", line 139, in _send
return sock.send(data)
OSError: [WinError 10038] ソケット以外のものに対して操作を実行しようとしました。
try except で別処理をしようと試みましたが、プログラムのどこに仕掛けてもうまく捕まえられません。
※処理後?に起こっている?
あまりpythonに慣れていないので、対処方法などご存じでしたらご教示いただけるとありがたいです。
以上よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー