gpt4 book ai didi

java - 通过数据报套接字的网络发现 : Multicasting

转载 作者:行者123 更新时间:2023-12-01 15:38:38 26 4
gpt4 key购买 nike

我正在实现一个示例,其中服务器监听网络中的任何 Activity 客户端。

我使用数据报套接字让服务器进行多播,并使用客户端来响应服务器。

public void run() {

try {
byte[] recvBuf = new byte[15000];
DatagramPacket packet = new DatagramPacket(recvBuf, recvBuf.length);
DatagramSocket dSock = new DatagramSocket(4445);
dSock.receive(packet);
int byteCount = packet.getLength();
ByteArrayInputStream byteStream = new ByteArrayInputStream(recvBuf);
ObjectInputStream is = new ObjectInputStream(new BufferedInputStream(byteStream));
}

}

在客户端:

public void run() {
{
ObjectOutputStream os = null;
try {
InetAddress address = InetAddress.getByName("Server's IP");//Note!
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(15000);
os = new ObjectOutputStream(new BufferedOutputStream(byteStream));
os.flush();
os.flush();
byte[] sendBuf = byteStream.toByteArray();
DatagramPacket packet = new DatagramPacket(sendBuf, sendBuf.length, address, 4445);
int byteCount = packet.getLength();
}
}

}

在上面的例子中,客户端必须先知道服务器的IP(硬编码)。如何修改服务器端的代码,以便服务器将其 IP 发送给客户端,客户端对其进行响应?

我可以使用套接字来完成此操作,但是可以使用数据报套接字吗?

谢谢!

最佳答案

您可以使用DatgramPacket.getAddress()并回复发件人

Returns the IP address of the machine to which this datagram is being sent or from which the datagram was received.

关于java - 通过数据报套接字的网络发现 : Multicasting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445685/

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