Ich arbeite mit einem UDPClient- (geschrieben in Java ) und ein Server (geschrieben in Lua). Ich benutze Lua Socket für den Server und DatagramSockets für den Client. Verbindung wird erfolgreich hergestellt. Das Problem ist, wenn Lua Server sendet eine Zeichenfolge an den Java-Client, Java receive() Funktion erhält nicht die Daten und blockiert. Bitte hilf mir.UDP-Verbindung zwischen Lua Server und Java-Client
Lua Server-Code:
-- Server
local socket = require("socket")
host = host or "*"
port = port or 8080
s = assert(socket.bind(host, port))
c = assert(s:accept())
data = "hello"
while true
do
assert(c:send(data .. "\n"))
socket.sleep(1)
-- return 0;
end
Java-Client-Code:
import java.net.*;
import java.io.*;
public class Clientnew
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = null;
byte[] Message = new byte[100];
try {
InetAddress IP = InetAddress.getLocalHost();
Socket client = new Socket(IP, 8080);
ds = new DatagramSocket(8080);
DatagramPacket dp = new DatagramPacket(Message, 1);
ds.receive(dp);
System.out.println("Recv\n");
String str = new String(dp.getData());
System.out.println(str);
} catch (Exception e)
{
} finally
{
if (ds != null)
{
ds.close();
}
}
}
}
Beide Programmlauf auf der Linux-Plattform.