現在我學習網絡編程。我想寫一個recvall
函數。我的消息通過TCP套接字發送,始終以\r\n
結尾。用谷歌搜索一些文章和博客文章,我發現了一種我不明白的方法。它可以寫得更簡單嗎?Python:我不明白這個語法
def recvuntil(s, needle):
data = ""
while data[-len(needle):] != needle:
data += s.recv(1)
return data
該行我不明白:while data[-len(needle):] != needle:
。這對我沒有任何意義(但是,它的工作原理)。 -len(needle)
應該返回一個負數並且字符串從0
開始編號...
總之'數據[-len(針):]'從len(針)的所有條目從右到尾。在一個列表中減去數字cound從結尾,積極的從一開始 –
換句話說,雖然數據的結尾不匹配針... – Bull