我是一名刚接触 Python Socket 编程的人。我正在尝试创建一个简单的聊天应用程序,想要通过客户端程序向服务器发送数据,但是在服务器接收数据时,我遇到了“超时”错误。
我的客户端程序:
import socket
PORT = 3017
def handler(req):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect(("localhost", PORT))
except socket.error, msg:
print("error connecting socket")
s = None
finally:
f.close()
s.settimeout(10.0)
s.send(req)
line = s.recv(1024)
s.close()
return line
if __name__ == '__main__':
while(1):
input = raw_input(">")
resp = handler(input)
print resp
我的服务器程序-
import socket
import SocketServer
class echo_server(SocketServer.StreamRequestHandler):
def handle(self):
timeout_telnet = float(2.0)
self.connection.settimeout(timeout_telnet)
data = []
# Read in all the lines.
while 1:
try:
line = self.rfile.readline()
except BaseException, e:
# Timeout.
print("error", e)
break
data.append(line)
print("data in handle method-\n", data)
self.wfile.write(("echo data- ".join(data)))
break
# Goodbye
def main():
s = SocketServer.ThreadingTCPServer(("", 3017), echo_server)
try:
s.serve_forever()
except KeyboardInterrupt:
print("Shutting down.")
s.socket.close()
if __name__ == "__main__":
main()