【发布时间】:2019-08-28 22:05:49
【问题描述】:
我想监听一个 UDP 端口来接收它在wireshark 中传输的信息,它看起来像这样
我发现的只是人们创建 ServerSockets,但是当我尝试时,我没有从控制台获得任何输出。
package me.xenopyax.albionmarket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
public static void main(String[] args) throws IOException {
DatagramSocket serverSocket = new DatagramSocket(5056);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String( receivePacket.getData());
System.out.println("RECEIVED: " + sentence);
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
}
}
}
我是否正确使用 ServersSockets 来监听端口。还是我做错了什么?
【问题讨论】:
-
您是否考虑过查阅文档?
ServerSocket用于 TCP。 -
为什么我在搜索“listening on UDP port java”时总是看到使用了ServerSockets?
-
当我搜索(Google)“侦听 UDP 端口 java”时,这不是我得到的。
-
更新了代码,但还是不行……
-
@XenoPyax 如果这真的是你发现的,那是因为你使用了错误的术语。
ServerSockets听。 UDP 套接字接收。
标签: java networking