2011-11-20 47 views
0

這聽起來很奇怪。我創建了一個基於每個套接字結構的線程的遊戲服務器(是的,每個用戶只有一個線程;響應由工作線程發送給客戶端)。我生成的線程首先對用戶進行身份驗證並處理登錄,之後它只接收數據並將其排隊等待處理。認證部分非常關鍵,需要很長時間才能實現,並且需要很長時間才能再次實現,因此我認爲在認證完成後,我可以將我擁有的阻塞套接字轉換爲SocketChannel的套接字,以便Selector可以以非阻塞的方式處理其消息?將阻塞的Socket對象轉換爲SocketChannel的套接字?

回答

2

你不能。你必須從SocketChannel開始,然後你可以在阻塞模式下使用socket(),或者在阻塞模式或非阻塞模式下使用通道本身。