我做了一个聊天软件,要在广域网上用,为了突破nat环境,我要给服务器传递我的程序运行的端口,我程序的端口是自动生成的,我想得到这个端口传给服务器,不知道怎么得到,请指点一二,谢谢
解决方案 »
- 如何创建ActiveX控件供VC调用??
- vs2008 C# 我在做毕业设计,为什么,在程序里通过语句修改数据库后,然后查询修改有效,重启程序后,修改无效
- 获得 DataGridView 中的控件
- 无线信息的接收,是否还是普通的socket编程的那种方式来接收吗?
- 我从数据库中取出一些数据,形式诸如:统计/查询/打印/../../../
- 为什么无法触发OnKeyPress和OnKeyDown方法?
- 求海关“联网监管--电子帐册”成功实施经验!
- 怎样用C#获得一个access库中某一个表的列数?
- DevExpress的GridControl如何控制展开全部的行
- ScrollWindowEx是如何调用的,为什么一个工作一个不工作?
- 若知道一个值怎样遍历出所有层子节点的id?
- 请大侠帮忙!关于C#与supermap objects开发
你了解nat的概念吗?你的端口?你的端口没有意义。nat路由会用它的端口取代你的端口,并且用它的ip取代你的ip。正因为此,所以同一个局域网内部的人访问服务器时他们的ip是一样的。
不好意思,我没有说清楚,我要内网端口自动生成是为了传给服务器,服务器把我的内网端口和内网自动生成的端口传给另外一个我要进行通信的客服端(就像qq和另一个qq通信一样),主要用这个内网ip和端口是用于判断是不是在同一个nat后面,如果在同一个nat后面,然后客服端可以直接通信。不过还是谢谢你
那就谈不上突破nat了。.net中可以使用dns获得自己(localhost或者127.0.0.1)的所有IPAddress。要注意一个机器会有许多IPAddress,即使判断IPAddress的类新必须是Ipv4的,也不止1个(例如我现在就有3个)。实际上,在局域网内部应该使用udp广播,这样对方就知道广播方的ip和端口,然后根据这个ip向其用于监听的另一个服务端口发送消息。这根本不需要服务器。
很高效的,QQ就是这种设计.
至于实现,在下没试过.
等系统需求来了,出开发一个玩玩.