Python 服务器/客户端

时间:2021-03-29 10:26:47

标签: python sql sockets pickle

我正在尝试用 python 做一个自动售货机程序。 在客户端,我有 GUI 和交易、支付等。 在服务器端,我已将文件链接到包含产品数量等的 SQL。

当客户购买产品时,我确实设法进行了一些修改。 我不知道该怎么做,我怎么能告诉我的服务器: “每次收到交易时,检查并更新我的数据库” 你能指导我如何做到这一点吗?或者我可以用另一种方式来做吗?

为了发送和接收数据,我使用套接字模块并在发送列表时使用pickle。 我有 9 个产品,每个产品都包含一个 ID、名称、价格和数量,我必须更新: 例如:

Survey No. 123, 'Anjanadhri Godowns', CityName

我希望你能在没有看到我所有代码的情况下帮助我,因为它真的很长。谢谢!

这是我的尝试:

#recieve
    updatestock = socket_client.recv(1024)
    updatestock2 = pickle.loads(updatestock)
#send
    server_message = pickle.dumps(stocklist)
    socket_client.sendall(server_message)

#What i send
stocklist = [
['P001','ChocolateBar',35,15],
['...','...',..,..],
[etc]].

如您所见,打印收到的消息 updatestock2 没有给我任何信息,所以我认为这是问题所在

1 个答案:

答案 0 :(得分:0)

我设法做一个无限循环识别客户端消息,如下所示:

while(True):
    updatestock = socket_client.recv(1024)  #wait for message
    updatestock2 = pickle.loads(updatestock)
    if updatestock2 != 0:     #if message is not empty do these condition
        if updatestock2 == "Quit":  
            break
        elif updatestock2 == "Graph":
            graph(stocklist,stock_status)
        else:
             update()     #this update my Db