Java UDPServer未从UDPClient接收发送的数据
我有以下UDP客户机和servcer类,我正在尝试将一些字符串从Java UDPServer未从UDPClient接收发送的数据,java,network-programming,udp,client-server,Java,Network Programming,Udp,Client Server,我有以下UDP客户机和servcer类,我正在尝试将一些字符串从UDPClient发送到本地主机和端口7777的同一java项目中的另一个类“UDPServer”。我面临的问题是,我没有从UDPClient类接收UDPServer类中的任何内容。有人知道问题出在哪里吗 谢谢你的帮助 UDPClient import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; cla
UDPClient
发送到本地主机和端口7777的同一java项目中的另一个类“UDPServer”。我面临的问题是,我没有从UDPClient类接收UDPServer类中的任何内容。有人知道问题出在哪里吗
谢谢你的帮助
UDPClient
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
class UDPClient {
public static void main(String args[]) throws Exception {
String aString = "Hello World";
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
sendData = aString.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 7777);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
UDPServer
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
class UDPServer {
public static void main(String args[]) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(7777);
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);
}
}
}
您好,请尝试检查端口分配有什么问题,因为您的代码工作正常 启动服务器并运行以下命令: 窗户
netstat -aon | FINDSTR 7777
Linux:
netstat -aon | grep 7777
您应该看到PID检查PID是否与UDPServer上运行的相同。同时检查防火墙是否有问题?您的数据报服务器是否出现异常?@Sonor否我没有收到任何错误或异常。代码似乎在我的机器上正常工作我看不到任何问题visibly@scsere:您没有在代码处更改任何内容吗?您是否使用了相同的端口?如果您可以控制防火墙,请暂时禁用整个防火墙。如果这解决了您的问题,您需要为所有接收传入数据的服务器创建防火墙规则。客户端应该能够通过防火墙发送数据,而不会出现任何问题。