Я использую клиентскую программу на своем локальном компьютере для подключения к серверу.связь отличная, пока сеть не выходит из строя.Когда сеть отключается, я пытаюсь закрыть сокет и восстановить соединение.Но shutdown () и close () не работают должным образом в клиентской программе.до сих пор я видел shutdown () и close () в серверной программе, а не в любой клиентской программе.Пожалуйста, помогите мне, если есть какой-либо способ решить проблему.
import socket,time
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
ip = '192.168.10.3'
port = 4196
address = (ip,port)
def con():
client.connect(address)
print("connected")
def comm():
while 1:
try:
client.send(b'\x01\x04\x00\x00\x00\x02\x71\xcb')
print("sent")
data= client.recv(1024)
print(" ".join("{:02x}".format(byte) for byte in (data)))
time.sleep(10)
except ConnectionResetError:
print("reset error")
client.shutdown(socket.SHUT_RD)
client.close()
time.sleep(20)
con()
con()
comm()
Error:
Traceback (most recent call last):
File "C:\Users\User\eclipse-workspace\Data\pwr\TCP.py", line 17, in comm
datasent = client.send(b'\x01\x04\x00\x00\x00\x02\x71\xcb')
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\User\eclipse-workspace\Data\pwr\TCP.py", line 30, in <module>
comm()
File "C:\Users\User\eclipse-workspace\Data\pwr\TCP.py", line 26, in comm
con()
File "C:\Users\User\eclipse-workspace\Data\pwr\TCP.py", line 11, in con
client.connect(address)
OSError: [WinError 10038] An operation was attempted on something that is not a socket