C#Socket程序局域网可以使用,怎么绑定网络地址让其他人访问

xiaoqiu_net 2015-02-24 04:56:05
socketListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName()); //Dns 通过主机名获取IP地址
IPAddress ipa = ips[1]; //关于win7的问题,因为在win7中已经启用了IPv6,所以 IPAddress数组[0]返回的是IPv6格式的地址
//应该使用IPAddress数组[1]返回 IPv4地址


IPEndPoint ipe = new IPEndPoint(ipa, 8888);
socketListen.Bind(ipe);

然后绑定了开始异步监听客户端连接。。


局域网内是使用没有任何问题。

但是我把客户端发给了朋友,用网络地址来连接我这个程序服务器,怎么无法连接的? 我记得以前vb的时候做过,其他人都可以连接进来,请问该怎么办?

求助啊 谢谢

QQ 646926099
...全文
347 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sunny5816 2015-02-28
  • 打赏
  • 举报
回复
您可以试试开源的networkcomms2.3.1 c#通信框架 英国的
生财 2015-02-27
  • 打赏
  • 举报
回复
邦定0.0.0.0 即可.然后机器外网可访问,并且防火墙,中打开联接端口
sunny906 2015-02-26
  • 打赏
  • 举报
回复
要确定ips[1]是公网IP
WM_JAWIN 2015-02-26
  • 打赏
  • 举报
回复
绑定0.0.0.0就可以了. 如果你朋友是从外网连接进来的话,你朋友连接的IP地址必须是你的外网IP地址. 你本机(服务器)要是通过路由器接入外网的话.需要设置路由器进行TCP转发
引用 4 楼 lincolnandlinda 的回复:
为什么我用127.0.0.1试验, 局域网内连接不上服务器?
127这个是本地回路IP,仅本机可用,
lincolnandlinda 2015-02-26
  • 打赏
  • 举报
回复
为什么我用127.0.0.1试验, 局域网内连接不上服务器?
ycg_893 2015-02-25
  • 打赏
  • 举报
回复
Socket通信需要服务器地址,若绑定192.168或172.16等局域网地址当前只能局域网才能访问,若绑定外网IP只能外网访问,因此一般来说要绑定Any(0.0.0.0)或127.0.0.1才能通吃。 而 IPAddress ipa = ips[1]; 这个代码得到的IP有可能是局域网地址。
xiaoqiu_net 2015-02-24
  • 打赏
  • 举报
回复
大神你好 可以加您QQ帮帮我吗
  • 打赏
  • 举报
回复
首先你要确定此服务器是否应该在对方可访问的网段内。如果不在,那么就需要在两个网段之“外”另找一个服务器。 其次,启动服务器的IP应该使用 Any(或者说 0.0.0.0),而不是本地 IP。 我在另一个帖子中贴出了两段Server和Client代码,只要监听其1、2个事件就行了,不需要自己写tcp代码。http://bbs.csdn.net/topics/390987992

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧