java如何指定出端口?Java codepublic void activeSend(SocketAddress addr, byte[] data) throws Exceptio
java如何指定出端口?
Java code public void activeSend(SocketAddress addr, byte[] data) throws Exception { DatagramPacket pack = new DatagramPacket(data, data.length, addr); activeDatagramSocket.send(pack); System.out.println("use active send"); }
如果这样发送的话 最终会从本地的一个 默认端口(操作系统帮你指定一个出端口) 出去到达对方IP
但我现在要指定端口,必须从3030出去.
也就是如果要写一个p2p打洞程序的必须操作: 指定确切的可行方向上的 '洞'
java如何指定出端口?
[解决办法]SocketAddress是一个抽象类。
public class InetSocketAddress extends SocketAddress
InetSocketAddress 继承了SocketAddress。
InetSocketAddress(InetAddress addr, int port) 构造函数就可以指定端口。
[解决办法]好厉害, lz写好程序后给我看看, 我也在学习呢
[解决办法]UDP?
获得这个activeDatagramSocket的时候用下面的构造方法:
DatagramSocket(int port)
创建数据报套接字并将其绑定到本地主机上的指定端口。
[解决办法]用这个连服务器:
Socket(String host, int port, InetAddress localAddr, int localPort)
[解决办法][解决办法][解决办法]冷静!别动气,气大伤肝啊!大家都仔细看看对方的回复!
[解决办法]搬凳子看看
[解决办法][解决办法]用Socket套接字制定端口
ServerSocket
[解决办法]DatagramPacket pack = new DatagramPacket(data, data.length, addr);
activeDatagramSocket.send(pack);
System.out.println("use active send");
DatagramPacket是无法直接绑定本地IP和端口的。
DatagramPacket的数据是通过DatagramSocket.send出去的。
要绑定本地的端口和IP只需要调用。
activeDatagramSocket.bind(SocketAddress addr);
这里的SocketAddress就是我1楼的回复。
顺便在发一个JAVADOC给你。
JDK6 JavaDoc:http://download.csdn.net/detail/fainfy/3689670
JDK7 JavaDoc: http://download.csdn.net/detail/fainfy/3605021
顺便我的回复是按照楼主的代码来回复的,我认为没有问题,只是你没有明白而已。
如果提问者是一个有心人,我会直接贴上可用的代码。
[解决办法]------解决方案--------------------
[解决办法][解决办法]问过怒 闻誉乐 损友来 益友却
闻誉恐 闻过欣 直谅士 渐相亲
过能改 归于无 倘掩饰 增一辜
这是《弟子规》里“信”篇
意思是:
听到别人说自己的过错就生气,听到别人称赞恭维自己就高兴。那么,有损德行的朋友就回来与你接近,对你有益的朋友就会和你远离。
听到别人赞美自己就感到惶恐不安,听到别人指出自己的过错就欢喜接受。经常这样做,哪些正直诚实的人,就会逐渐来亲近你。
有了过错,要能用于面对,并彻底改正过来。这样,别人就还是把他当好人看。如果不肯承认,还要极力掩饰,那就错上加错了。