gpt4 book ai didi

Java UDP 服务器无法解码正确的 IP 地址

转载 作者:行者123 更新时间:2023-11-30 05:05:39 25 4
gpt4 key购买 nike

我正在尝试使用 java UDP 制作客户端服务器应用程序。当服务器从客户端接收消息时,它应该解码 IP 地址和端口号,以便可以发回数据。问题是当从数据包中解码 IP 地址时,前面有一个/,因此它无法返回消息。程序的输出如下

等待数据已收到:消息/178.179.35.156798

我应该如何删除从数据包中解码的 IP 地址开头的/?谢谢!

import java.io.*;   
import java.net.*;

class UDPServer {

public static void main(String args[]) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true) {
System.out.println("waiting for data");
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();
System.out.println(IPAddress);
SocketAddress newtry = receivePacket.getSocketAddress();
int port = receivePacket.getPort();
System.out.println(port);

String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, newtry);
serverSocket.send(sendPacket);
}
}
}

最佳答案

使用InetAddress.getHostAddress()获取 IP 的文本表示。

但是,看看您的代码,您可以粘贴您收到的错误吗?无论如何,您应该只使用 InetAddress 对象,因此可能会发生其他情况。

关于Java UDP 服务器无法解码正确的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com