Python-如何在没有客户端发送来的数据的情况下停止套接字recv()等待

时间:2018-11-27 10:02:29

标签: python sockets client-server

我正在研究套接字的工作方式,并尝试做一些简单的事情。 我的客户向服务器发送任何内容,服务器将不会收到任何内容。但是问题是服务器套接字将始终不等待任何内容。如果没有来自客户端的可用数据,我希望它做其他事情。 if statement无助于结束其等待。

Server.py:

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
hostname = socket.gethostname()
host = socket.gethostbyname(hostname)
port = 9090
server.bind((host, port))
server.listen(10)
con, addr = server.accept()  
msg = con.recv(2048)
if not msg:
    con.send('hello world'.encode('utf-8'))
    con.close()
    server.close()
else:
    con.send('hi Client I received it'.encode('utf-8'))
    con.close()
    server.close()

Client.py:

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('192.155.11.79', 9090))
data = client.recv(2048).decode('utf-8')
print('From server side: ', data)
client.close()

0 个答案:

没有答案