簡體   English   中英

保存並加載 python 插座 object 到 sqlite db?

[英]Save and load python socket object to sqlite db?

我想創建多個套接字對象並將它們保存在 sqlite 數據庫中,因為我不想在我的 memory 中創建大量套接字對象列表。 后來(在同一個 python 會話中)我想在 var 中一個接一個地加載一個套接字並再次使用它來發送消息和其他東西。 現在我的問題是我不確定如何序列化並將其保存在 sqlite 數據庫中。 我嘗試使用酸洗套接字作為字符串 object,但效果不佳,因為我無法將其作為套接字類型 object 加載到數據庫之外。 也許有人知道更好的解決方案?

編輯:

現在問題已經解決了。 感謝您的幫助,我現在要做的是在接受新連接后立即使用socket.fileno()獲取 conn_socket 的文件描述符,並將其作為字符串寫入我的 sqlite 數據庫。 然后,當我需要套接字時,我獲取我的數據庫的文件描述符值並使用socket.fromfd()創建套接字。 套接字功能齊全,可以使用此方法一遍又一遍地創建。 所以我實際上讓它沒有多個列表,而是有一個數據庫,其中包含單個連接的所有有用內容。 但要知道的重要一點是,當我關閉我的 pthon 程序時,數據庫將被刪除,因為 sockets 也被刪除和關閉。 仍然對我的情況有用。

好吧,這不會按照你想要的方式工作。 套接字 object 包含一個非常像打開文件的操作系統。 如果將其保存到數據庫中,您可能會存儲一些有用的信息,但該文件會 go 消失。 當您從數據庫中 select 時,它將不再是工作套接字。

如果您需要打開很多 sockets,那么您只需執行此操作。 他們實際上並沒有占用那么多存儲空間。 如果您擔心它,請在完成后關閉一個套接字並打開另一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM