当前位置:编程学习 > C#/ASP.NET >>

c# socket通信问题?

利用 IPEndPoint iep = new IPEndPoint(IPAddress.Any, 56356);
  socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  socket.Bind(iep);
  socket.Listen(5);
进行监听的时候IPAddress.Any应该是本机的IP地址!但是由于本机是内网的!所有获取到的就是外网的IP地址,也就是说点击打开监听的时候,打开的是外网IP所在机子的端口,而本机却没打开!怎么实现打开的是本机的端口,而不是外网的端口!

另一方连接时【IPEndPoint iep = new IPEndPoint(IPAddress.Any, 56356)】中的IPAddress.Any应该是什么? --------------------编程问答-------------------- 127.0.0.1试试! --------------------编程问答-------------------- IPEndPoint iep = new IPEndPoint(IPAddress.Any, 56356);//绑定到本地所有IP,一台电脑可以有多个IP,如果你有多个IP有内网又有外网的话,你想绑定到那个上面第一个参数就写那个ip  socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  socket.Bind(iep);
  socket.Listen(5);
--------------------编程问答--------------------
引用 2 楼 comdot 的回复:
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 56356);//绑定到本地所有IP,一台电脑可以有多个IP,如果你有多个IP有内网又有外网的话,你想绑定到那个上面第一个参数就写那个ip socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp……

因为我们写程序的时候是在内网写的,也没上服务器!这时获取的就是内网的ip地址!
上服务器之后,获取到的就是外网的ip地址了!内网的就没了!
IPHostEntry ieh = Dns.GetHostByName(Dns.GetHostName());这样获取的ip地址是不是包含了内网和外网的? --------------------编程问答-------------------- 我不得不说这个“本地网卡启动后配置为外网IP”的说法太“扯”了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,