server.java
来自「JAVA的nat 穿透的实现」· Java 代码 · 共 51 行
JAVA
51 行
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class server {
/**
* @param args
*/
static InetAddress clientIP1,clientIP2;
static int clientPort1,clientPort2;
public static void main(String[] args) {
// TODO Auto-generated method st
try {
byte[] inbuf = new byte[256];
DatagramSocket server = new DatagramSocket(8888);
DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);
System.out.print("server is running!");
while(true){
server.receive(packet);
System.out.print("receive "+new String(packet.getData()));
if(new String(packet.getData()).startsWith("login1"))
{
clientIP1=packet.getAddress();
clientPort1=packet.getPort();
System.out.print("receive client1");
}
else if(new String(packet.getData()).startsWith("login2"))
{
clientIP2=packet.getAddress();
clientPort2=packet.getPort();
System.out.print("receive client2");
byte[] data=(clientIP1.toString()+":"+clientPort1).getBytes();
DatagramPacket request = new DatagramPacket(data, data.length,packet.getAddress(), packet.getPort());
server.send(request);
data=(clientIP2.toString()+":"+clientPort2).getBytes();
request = new DatagramPacket(data, data.length,clientIP1, clientPort1);
server.send(request);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?