如何解决Python套接字:连接被拒绝
我使用以下代码将字符串从服务器 1 转发到服务器 2,然后返回,每次打开和关闭套接字。
def ts1(data):
try:
ts_sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("CONNECTED TO TS1")
except socket.error as err:
print('socket open error: {} \n'.format(err))
exit()
ts_addr = (args.server_location,args.tsport)
ts_sock.connect(ts_addr)
with ts_sock:
if stuff:
ts_sock.sendall(ts_data.encode('utf-8'))
print('sent to ts1: ' + hostname)
while True:
data2 = ts_sock.recv(512)
data2 = data2.decode('utf-8')
data2 = data2.strip()
print('data 2: ' + data2)
break
ts_sock.close()
return data2
服务器 2 的套接字是预先创建的,永远不会手动关闭,因此它只是接收数据,执行操作并将其发送回:
with csockid:
while True:
# receive and decode
try:
data = csockid.recv(512)
data = data.decode('utf-8')
data = data.strip()
except ConnectionResetError:
print("==> ConnectionResetError")
pass
if data:
csockid.sendall(data.encode('utf-8'))
# print('sent')
if not data:
break
出于某种原因,第一个字符串被发送和接收回来就好了,但是第二次我尝试连接到服务器 2 并发送另一个字符串时,我得到:
ts_sock.connect(ts_addr)
ConnectionRefusedError: [Errno 111] Connection refused
任何帮助将不胜感激,我对套接字编程和 Python 总体上还是比较陌生。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。