我是socket編程的新手。我正在開發客戶端 - 服務器通信程序,並且在客戶端連接到服務器時顯示客戶端名稱而不是IP地址時遇到困難。任何人都可以給我一個好的方法嗎?我該怎麼做?我需要知識產權以進一步溝通。 這裏是我的客戶端代碼:C#Socket編程:如何通過名稱來識別客戶端不是IP
mTcpClient = new TcpClient();
mTcpClient.BeginConnect(ipa, nPort, onCompleteConnect, mTcpClient);
這onCompleteConnect功能:
void onCompleteConnect(IAsyncResult iar)
{
TcpClient tcpc;
try
{
tcpc = (TcpClient)iar.AsyncState;
tcpc.EndConnect(iar);
mRx = new byte[512];
tcpc.GetStream().BeginRead(mRx, 0, mRx.Length, onCompleteReadFromServerStream, tcpc);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
現在,我想送客戶的名稱,以及在服務器端接收。我該怎麼辦?
當您連接使用字符串連接語句中既然你已經有了名字。一個簡單的技巧是讓一個自定義類繼承TcpClient並添加一個名爲ClientName的屬性。或者創建一個狀態對象(如在msdn示例中),並將客戶端名稱作爲屬性存儲在狀態對象中。 – jdweng