Python套接字服务器-继续接收客户端数据
如何让Python套接字服务器告诉我何时存在连接,然后继续返回客户端发送的数据?当我这样做的时候,它连接起来,然后循环过来,告诉我它一次又一次地连接起来 一、 只希望它连接,然后不断检查或获取发送到服务器的数据 另外,如何判断客户端是否已断开连接Python套接字服务器-继续接收客户端数据,python,sockets,Python,Sockets,如何让Python套接字服务器告诉我何时存在连接,然后继续返回客户端发送的数据?当我这样做的时候,它连接起来,然后循环过来,告诉我它一次又一次地连接起来 一、 只希望它连接,然后不断检查或获取发送到服务器的数据 另外,如何判断客户端是否已断开连接 address = ('', 7777) server_socket = socket(AF_INET, SOCK_STREAM) server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) try:
address = ('', 7777)
server_socket = socket(AF_INET, SOCK_STREAM)
server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
try:
server_socket.bind(address)
except Exception, e:
print colored("Address already in use", 'red')
server_socket.listen(2)
print colored("Socket ready", 'blue')
while True:
client_socket, addr = server_socket.accept()
hostIP = addr[0]
port = addr[1]
try:
host = gethostbyaddr(hostIP)[0]
except:
host = hostIP
print colored("Got connection from: " + host, 'blue')
try:
recv_data = server_socket.recv(2048)
print("Got: " + recv_data)
except:
print "nothing"
recv_data = "" # this is because I test what it is later, but that's irrevlevant.
谢谢您没有对客户端\u套接字做任何操作;ie:实际的客户端连接。此外,服务器 无法知道客户端希望发送多少,因此必须继续(即:以 循环以接收数据。当连接发送“空”数据时,连接 被终止,服务器返回侦听。如果您希望服务器 接受新连接并继续从现有连接接收数据 查找线程模块
您需要显示您尝试了什么。通常来说,套接字服务器绑定到套接字,侦听连接,接受/拒绝连接,发送/接收已接受连接上的数据。您似乎没有对连接执行任何操作。您需要处理连接。好的,它接收数据。那有帮助吗?它可能还需要有多个连接。但只是可能,不是真的。仍然需要你试过的代码。好的,我会去看看那个模块的插接。我已经用过了,但没想到会用到插座。谢谢
import socket
address = ('', 7777)
server_socket = socket.socket(AF_INET, SOCK_STREAM)
server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
try:
server_socket.bind(address)
except Exception, e:
print colored("Address already in use", 'red')
server_socket.listen(2)
print colored("Socket ready", 'blue')
while True:
client_socket, addr = server_socket.accept()
hostIP = addr[0]
port = addr[1]
try:
host = gethostbyaddr(hostIP)[0]
except:
host = hostIP
print colored("Got connection from: " + host, 'blue')
while True:
try:
recv_data = client_socket.recv(2048)
if not recv_data:
break
print("Got: " + recv_data)
except socket.error, e:
print "nothing"
recv_data = "" # this is because I test what it is later, but that's irrevlevant.