所以我正在研究一個Python IRC框架,並且我正在使用Python的socket
模塊。我喜歡使用Twisted嗎?不,不是。Python socket模塊的問題
無論如何,我有一個無限循環讀取和處理來自socket.recv(xxxx)
的數據,其中xxxx
在這種情況下真的無關緊要。我使用str.split("\r\n")
將收到的數據拆分爲消息,並逐個處理它們。
我的問題是,我必須設置在socket.recv()
特定的「讀取大小」來定義多少數據從套接字讀取。當我收到一連串的數據時(例如,當我連接到IRC服務器並接收到MOTD.etc時),總會有一條消息跨越插槽的兩個「讀取」(即部分行被讀入一個socket.recv()
其餘的則在無限循環的下一次迭代中讀取)。
我不能處理半收到的消息,我不知道是否有連破案的一種方式。在理想情況下,我會收到緩衝區中的所有內容,但它看起來不像socket
提供了一種方法。
任何幫助?
爲什麼另起爐竈?現在已經有很多解決方案可以做到這一點,Twisted恰好是最通用的。 – jathanism
爲什麼你不想使用Twisted? – dicato