私はソケットプログラミングの新人です。私は、クライアント - サーバー通信プログラムを開発しており、クライアントがサーバーに接続したときにIPアドレスの代わりにクライアント名を表示するのが難しいです。誰も私に良いアプローチを提案することはできますか?私はそれをどのようにすることができますか?さらなる通信のためには、そのIPも必要です。 は、ここに私のクライアント側のコードです:C#ソケットプログラミング: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