最近我正在處理網絡編程(尤其是P2P系統)。通常的程序我打交道,一個地方有這樣的事情(在它自己的線程中運行):處理主監聽迴路外的網絡協議步驟
while True:
handle(receive())
我該如何處理一系列相關的發送/接收操作。例如,當我想有這樣的:
def inviteNode(receiver):
send(receiver, INVITE)
if receive() == OK:
send(receiver, SOME_INFORMATION)
...
我的意思是幾個發送/接收功能互相依賴的,並有一定的順序操作。如果上面有inviteNode()
這樣的東西會很好(因爲協議的所有步驟都在代碼中的相同位置,並且您可以通過查看代碼來追溯訂單),但只在我的偵聽循環之外調用將不會這樣做,因爲如何決定獲得哪些數據。
是否有一個全球性的國家唯一的解決方案呢?在做完第一個send(receiver, INVITE)
之後,我是否需要記住某個地方,我希望從該特定節點獲得OK
,我只是將INVITE
發送給?當我有幾個不同的這些相關的發送/接收操作時,這不是很複雜嗎?
PS:只是爲了確保:這是關於UDP連接。
在此先感謝!