2015-07-11 103 views
0

我是網絡編程以及計算器的新手,所以我希望我不會犯任何錯誤。C# - 網絡編程 - 允許連接之前驗證客戶端

我嘗試使用TcpListener/TcpClient編寫客戶端/服務器應用程序。但我不想接受每個嘗試連接到服務器的客戶端。

如果雙方在客戶端未發送請求時仍然保持連接,以及如何使用密碼驗證客戶端,我就完全不瞭解了。我怎麼能這樣做?

我不希望一個教程,但可能是一個很好的參考或YouTube教程的鏈接,我找不到有用的東西在我的研究。

謝謝fre3zr

+1

這必須建立在更高的協議層 - TCP沒有這樣的概念。但是,如果您不希望更改協議層本身(對於許多其他攻擊媒介,它仍然相對容易受到攻擊),您只需監聽加密[隧道層]後面的接口/端口即可(https:// en.wikipedia.org/wiki/Tunneling_protocol),並要求客戶事先建立這樣的隧道。 – user2864740

+0

是的,而不是完全不接受客戶,你應該接受它,要求輸入密碼,然後繼續工作或拒絕。 – Yegor

回答

0

TCP協議的工作原理如下:或者你接受連接你不知道。 接受後,你可以做你的支票並拒絕客戶,如果你想。

僞代碼:

Sock1.Accept() 

If data then 
    Store the received data in "X" 
    If Password match "X" then continue, if not: KickClient() 
End If 

是的,當你完成發送你的數據,你必須斷開他,以便騰出資源,客戶端保持連接。

添加代碼到您的問題,所以我們可以幫助您更多。