2014-05-05 175 views
-2

我是新來的套接字編程,我試圖做一個簡單的套接字登錄。 服務器有一個用戶名和密碼列表,客戶端通過發送帶有用戶名和密碼的請求進行連接。 如果他成功登錄,我想保存一個新的會話,以便他可以使用更多命令... 如何爲每個客戶端保存一個會話? 謝謝你的幫助! :)多套接字連接TCP C#

+1

製作一組值?你有什麼嘗試? – gunr2171

回答

2

這取決於你的連接是否保持對整個會話打開,或者客戶端是否會打開/關閉整個連接(如Web服務器如何工作)。

在第一種情況下,您可以簡單地保存狀態數據以及對連接的套接字對象的引用。

在第二種情況下,您需要爲每個客戶端提供一個唯一標識符(會話ID),該標識符可以是服務器端包含狀態數據的字典中的關鍵字。

如果這只是一個學習套接字的實驗,那麼這應該讓你去。請記住,如果你正在「爲了真實」(在互聯網上)這麼做,那麼安全問題就遠遠不止是會話ID。

+0

這是一個實驗,以瞭解套接字.. 我想第二個選項,但我不知道如何爲每個客戶端做一個唯一的標識符,我試着做一個「會話」計數器,然後當用戶登錄後,使用會話計數器創建一個會話對象,然後我想檢查例如 - 如果會話處於活動狀態,則允許他做更多...爲了做到這一點,我需要以某種方式檢查他會話ID在運行... – user3604597

+0

我想了很多:)玩得開心! –

+0

如何保存每次新客戶端連接時都不會重置的唯一標識符?我試圖將用戶名和他的會話ID保存到一個「會話」對象中,問題是如果我同時打開兩個客戶端,並且一個連接,那麼第二個客戶端也可以完成與他連接的相同的事情儘管他不是) – user3604597