[問題] 關於UDP socket的bind

看板C_and_CPP (C/C++)作者 (momo)時間13年前 (2013/04/09 16:14), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) visual studio 2010 問題(Question): 最近在研究透過STUN穿透NAT的方法 看了一些client端的code後,自己去練習後卻有一些問題 目前問題是我在做單機測試時候 程式A可以直接輸入目的地IP:port傳訊息給程式B (本地IP:port1) (本地IP:port2) 卻無法收到程式B的回傳訊息,error好像發生在程式A的recvfrom 我在想問題會不會是在bind這個函式,但對它沒有很熟 只會使用它且知道tcp的server/client程式都會在server端綁定一個port 但我不懂為什麼udp需要bind這個動作 我想請教各位 兩個client想要溝通是否還需要對port做bind? 如下面的流程圖 流程圖一 UDP client A UDP client B socket() socket() | | bind() bind() | | sendto() --------------> recvfrom() ↑ ↓ recvfrom() <-------------- sendto() 或者是可以改成這樣 流程圖二 UDP client A UDP client B socket() socket() | | sendto() --------------> recvfrom() ↑ ↓ recvfrom() <-------------- sendto() 現在我的程式類似圖一狀況 麻煩各位幫我解答這個問題 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.169.135.46 ※ 編輯: moumou219 來自: 1.169.135.46 (04/09 16:17)

04/09 23:40, , 1F
可以不用 bind
04/09 23:40, 1F

04/09 23:48, , 2F
04/09 23:48, 2F
文章代碼(AID): #1HOytfGo (C_and_CPP)
文章代碼(AID): #1HOytfGo (C_and_CPP)