socket.error
-
Greetings,
there seems to be no socket.error nor socket.OSError. How can I trap an error seeing that the socket library has no socket.error clause?here's my sample snippet:
while True: msg = input('Enter message to send : ') try : # Set the whole string and convert encode the string to bytes s.sendto(str.encode(msg), (host, port)) # receive data from client (data, addr) d = s.recvfrom(1024) reply = d[0] addr = d[1] print('Server reply : ' + str(bytes.decode(reply))) # convert reply to string except socket.error: print('Error Code : ' + str(msg[0]) + ' Message ' + str(msg[1])) sys.exit()and the error is:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/lib/udpClient.py", line 32, in <module> AttributeError: 'module' object has no attribute 'error'The "except socket.error" is the error line
thanks
omari -
For me, it works if I use it like this (perhaps you are importing usocket instead of socket?):
from network import WLAN import time import socket import machine import sys wlan = WLAN() wlan.mode(WLAN.STA) wlan.connect(ssid="",auth=(WLAN.WPA2, "#")) print("connecting.",end ='') while not wlan.isconnected(): print(".",end='') time.sleep(1) print("connected") print("WiFi connection established") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) while True: msg = 'Enter message to send : ' try : # Set the whole string and convert encode the string to bytes s.sendto(str.encode(msg), ('192.168.4.4', 80)) # receive data from client (data, addr) d = s.recvfrom(1024) reply = d[0] addr = d[1] print('Server reply : ' + str(bytes.decode(reply))) # convert reply to string except socket.error: print('Error Code : ' + str(msg[0]) + ' Message ' + str(msg[1])) sys.exit() -
Which board are you using? I'm using the expressif esp32-wrover-b.
Your code is no different than mine. Even if I enter it line by line in pymakr repl, I still get an error on: except socket.error.
From the pymakr prompt, there is no socket.error nor socket.socket.error routine. And yes, I'm importing socket not usocket although I tried it with usocket and got the same error.The code runs fine as long as there are no errors at which time the socket.error routine is called.
-
The usocket implementation does not include an form of custom errors. Instead it throws in instance of OSError
instead of:
except socket.error:try
except OSError:
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login