python socket connect 超时_python socket.connect – >为什么会超时?

在这方面我很天真.我不确定为什么我的连接超时.提前致谢.

#!/usr/bin/env python

import socket

def socket_to_me():

socket.setdefaulttimeout(2)

s = socket.socket()

s.connect(("192.168.95.148",21))

ans = s.recv(1024)

print(ans)

此代码生成的跟踪回溯

Traceback (most recent call last):

File "logger.py", line 12, in

socket_to_me()

File "/home/drew/drewPlay/python/violent/networking.py", line 7, in socket_to_me

s.connect(("192.168.95.148",21))

File "/usr/lib/python2.7/socket.py", line 224, in meth

return getattr(self._sock,name)(*args)

timeout: timed out

最佳答案 您无需更改所有新套接字的默认超时,而只需设置该特定连接的超时即可.虽然值有点低,但是将其增加到10-15秒有望成功.

首先,这样做:

s = socket.socket()

然后:

s.settimeout(10)

你应该在连接上使用“try:”,并添加:

except socket.error as socketerror:

print("Error: ", socketerror)

这将在输出中显示系统错误消息并处理异常.

修改后的代码版本:

def socket_to_me():

try:

s = socket.socket()

s.settimeout(2)

s.connect(("192.168.95.148",21))

ans = s.recv(1024)

print(ans)

s.shutdown(1) # By convention, but not actually necessary

s.close() # Remember to close sockets after use!

except socket.error as socketerror:

print("Error: ", socketerror)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值