Python客户端套接字挂起

时间:2016-03-02 10:03:52

标签: python sockets

我发现我的套接字客户端存在一个良性但持久的问题,它似乎挂起并且从未收到服务器的响应。换句话说,无限期等待任何回应。

这种情况只发生在服务器套接字运行了一分钟左右的方法/函数的情况下,其结果应该返回给客户端。

简单地说,如果你试图来回发送纯文本,这很好,但是调用一个可能需要客户端等待响应的函数会导致它挂起。

任何帮助将不胜感激。 下面是一些代码...感谢@Robᵩ提供了一个早期的solution,它可以处理输入和响应等文本

的客户端

import socket
s = socket.socket()
s.connect(("localhost",3000))
f=open ("tranmit.jpg", "rb")
l = f.read(1024)
while (l):
    s.send(l)
    l = f.read(1024)
s.shutdown(socket.SHUT_WR)
reply =s.recv(1024) # Feedback: would like the receive feedback from the server.
print reply
s.close()

服务器

import socket
import sys
s = socket.socket()
s.bind(("localhost",3000))
s.listen(10)
i=1
# def somefunction(x):
#     ''' does some computationally semi intensive work, say last about 120s and returns a result for the client'''
while True:
    sc, address = s.accept()
    print address
    f = open('transmit.jpg','wb') #open in binary
    l = 1
    while(l):
        l = sc.recv(1024)
        while (l):
            f.write(l)
            l = sc.recv(1024)
        f.close()
        result =somefunction('transmit.jpg') # does something with the image from the client
        sc.send(str(result)) # Would like to send back a response

    sc.close()

s.close()

0 个答案:

没有答案