好的,这有点令人沮丧,从过去几个小时我一直在努力使用基于 .Net Socket的应用程序,简而言之,这个应用程序就是一个异步服务器,这个服务器可以通过两种方式实例化: -
例外: “请求的地址在其上下文中无效”。
以下代码用于启动服务器
public void StartServer(int port, IPAddress ipAddress)
{
byte[] bytes = new Byte[1024];
IPAddress[] ips = Dns.GetHostAddresses(ipAddress.ToString());
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this._socket = listener;
try
{
IPEndPoint bindEndPoint;
bindEndPoint = new IPEndPoint(ipAddress, port);
listener.Bind(bindEndPoint);
listener.Listen(100);
WriteStatus("\nStarted -" + bindEndPoint.ToString() + " on " + Convert.ToString(port));
IsUp = true;
while (IsUp)
{
allDone.Reset();
WriteStatus("\nWaiting for a connection......");
try
{
listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);
}
catch (ObjectDisposedException)
{
return;
}
allDone.WaitOne();
}
}
catch (SocketException se)
{
MessageBox.Show(se.Message, "Error : Start Server", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
这样会加载预配置的DNS名称
private void LoadStaticIp()
{
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
_ipAddress = ipHostInfo.AddressList[0].ToString();
}
请帮忙。