gpt4 book ai didi

java - udp端口失败,服务器无法启动

转载 作者:行者123 更新时间:2023-12-02 00:33:07 24 4
gpt4 key购买 nike

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

public class Server{

public static void main(String[] args) throws SocketException, IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int myPort= 2002;
String name;
String serverMsg;
String clientMsg;
byte[] dataReceive = new byte[65536];
byte[] sendData = new byte[65536];

DatagramPacket packetReceive = new DatagramPacket(dataReceive,dataReceive.length);
DatagramPacket sendPacket= new DatagramPacket(sendData,sendData.length);
DatagramSocket server= new DatagramSocket(myPort);
serverMsg="Pls enter your name:";
sendData=serverMsg.getBytes();
sendPacket.setData(sendData);
sendPacket.setAddress(packetReceive.getAddress());
sendPacket.setPort(packetReceive.getPort());
server.send(sendPacket);
server.receive(packetReceive);
clientMsg = new String(packetReceive.getData(),0,packetReceive.getLength());
serverMsg="yourname is "+clientMsg;
sendData=serverMsg.getBytes();
sendPacket.setData(sendData);
sendPacket.setAddress(packetReceive.getAddress());
sendPacket.setPort(packetReceive.getPort());
server.send(sendPacket);

server.close();
}
}
<小时/>

一般输出

Exception in thread "main" java.lang.IllegalArgumentException: Port out of range:-1
at java.net.DatagramPacket.setPort(DatagramPacket.java:292)
at Server.main(Server.java:25)

最佳答案

sendPacket.setAddress(packetReceive.getAddress());

我不确定你认为这行代码会做什么,但它没有任何意义。尽管它的名字如此,“packetReceive”(还)并不保存接收到的数据包。因此“getAddress”无法返回发送它的地址。

关于java - udp端口失败,服务器无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8482909/

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