📄 udpclient.java
字号:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.regex.Pattern;
public class UDPClient implements Runnable{
//服务器端
SocketAddress server;
DatagramSocket ds;
byte[] buffer = new byte[1024];
DatagramPacket rec;
String clienthost;
int clientport;
public static void main(String[] args) throws Exception {
UDPClient client = new UDPClient();
client.server = new InetSocketAddress("localhost", 2008);
client.start();
}
public void start() throws Exception {
System.out.println("start");
ds = new DatagramSocket();
rec = new DatagramPacket(buffer, 1024);
//发送本机信息
String msg = "register " + InetAddress.getLocalHost().getHostAddress() + " " + ds.getLocalPort();
ds.send(new DatagramPacket(msg.getBytes(), msg.getBytes().length, server));
//接收另一节点信息
System.out.println("正在接收信息");
ds.receive(rec);
System.out.println("收到信息");
String line = "来自:"+rec.getSocketAddress() + "信息:" + rec.getData();
System.out.println(line);
//send
new Thread(this).start();
//receive
receive();
}
public void receive() {
while(true) {
try {
System.out.println("正在接收信息");
ds.receive(rec);
System.out.println("收到信息");
String line = "来自:"+rec.getSocketAddress() + "信息:" + rec.getData();
System.out.println(line);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
public void run() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("请输入命令:");
String line = reader.readLine();
while (!"exit".equals(line)) {
doCommand(line);
System.out.print("请输入命令:");
line = reader.readLine();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public void doCommand(String cmd) throws Exception {
InetSocketAddress target = new InetSocketAddress(clienthost, clientport);
byte[] bs = cmd.getBytes();
ds.send(new DatagramPacket(bs, bs.length, target));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -