三臺(tái)計(jì)算機(jī),
A在公網(wǎng)
B,C在不同的內(nèi)網(wǎng)
問(wèn)題:C如何連接B的22端口
理論:
首先C發(fā)起連接到A的8000端口,建立一個(gè)【C機(jī)器的第1個(gè)連接】
然后B發(fā)起連接到A的8000端口,連接后,找到C建立的連接,進(jìn)行PIPE,
C發(fā)起連接到本地的22端口建立【C機(jī)器的第2個(gè)連接】,【C機(jī)器的第2個(gè)連接】和【C機(jī)器的第1個(gè)連接】進(jìn)行PIPE
問(wèn)題:
C機(jī)器不知道該何時(shí)去建立【C機(jī)器的第2個(gè)連接】,如何能知道B機(jī)器已經(jīng)連接到了A機(jī)器,并且建立好了PIPE?
如何能知道B機(jī)器已經(jīng)連接到了A機(jī)器,并且建立好了PIPE?
這個(gè)B通過(guò)A給C發(fā)個(gè)消息通知下就好了吧
貌似原帖中有筆誤,你的目標(biāo)應(yīng)該是【B 連接 C 的 22 端口】,對(duì)吧?
A 在收到 B 的連接請(qǐng)求后,應(yīng)該通過(guò)【C機(jī)器的第1個(gè)連接】給 C 發(fā)送一個(gè)消息,C 收到這個(gè)消息,就知道該去建立【第 2 個(gè)連接】了,同時(shí)對(duì)【第 1 個(gè)連接】進(jìn)行協(xié)議轉(zhuǎn)換,改為與【第 2 個(gè)連接】進(jìn)行雙向轉(zhuǎn)發(fā)。
BTW,A 應(yīng)該監(jiān)聽(tīng)兩個(gè)不同的端口,一個(gè)接收來(lái)自服務(wù)提供方(C)的連接,一個(gè)接收來(lái)自消費(fèi)方(B)的連接,你現(xiàn)在這樣都在 8000 端口接收連接,A 很難區(qū)分出一個(gè)新來(lái)的連接的目的。