家里的路由器映射后,外网访问的IP地址变成了域名,一般外网访问域名和端口就可以映射到自己在家中设置的服务端口或者服务器了
外网客户端使用winform编写,socket网络通信,TCP协议,这里因为是要通过外网去访问你的服务器,所以需要把域名和端口输入后连接到服务器
而只把域名传到socket是不会被识别的,所以域名需要处理一下——————DNS解析
这里输入域名后,需要先将域名DNS一下,解析成对应的IP,这样就能连接到服务器了
//在客户端创建一个负责跟服务端通信使用的Socket
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//获得要连接的服务器的IP地址
IPHostEntry dnstoip = new IPHostEntry();//DNS
dnstoip = Dns.GetHostEntry(txtServer.Text);//解析域名
for (int i = 0; i < dnstoip.AddressList.Length; i++)
{
textBox1.AppendText(textBox1.Text.ToString() + "对应的IP地址是" + dnstoip.AddressList[i].ToString());
}
IPAddress ip = IPAddress.Parse(dnstoip.AddressList[0].ToString());
//获得要连接的服务器的端口号 IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(txtPort.Text)); //客户端负责通信的Socket去连接服务端的IP地址跟端口号 socket.Connect(point);