【问题标题】:Why doesn't my code respond elsewise?为什么我的代码没有响应?
【发布时间】:2015-12-30 19:37:45
【问题描述】:
import socket
sock = socket.socket()
sock.bind(('127.0.0.1', 1600))
sock.listen(1)
(client_sock,client_address) = sock.accept()
client_name = client_sock.recv(1024)
client_sock.send('hi its '+client_name)
client_sock.close()
sock.close();  

所以我在 cmd 命令提示符下运行包含上述代码的文件,我得到的只是:

可以看出,我的 cmd 好像在等待某事发生,它不会打印出“Hi its ...”,并且永远不会从等待中结束。 为什么我的代码不起作用?

【问题讨论】:

  • 你要寄东西给它吗?
  • 它在 recv() 处阻塞,所以“Hi it”永远不会发送。

标签: python sockets localhost


【解决方案1】:

这很简单:您必须先发送数据,然后再接收。接收命令等到超时(如果已设置)然后继续。请记住,您还必须打印接收到的数据。 做你想做的事的最佳实践是至少有两个不同线程的服务器-客户端方法。

【讨论】:

    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多