【发布时间】:2017-06-19 07:27:23
【问题描述】:
我是套接字编程的新手。我正在开发一个客户端-服务器通信程序,当客户端连接到服务器时,无法显示客户端名称而不是 IP 地址。任何人都可以建议我一个好的方法吗?我怎么能这样做?我也需要该 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 示例中)并将客户端名称作为属性放入状态对象中。