将Java数据包发送到Python服务器?

| 我刚刚开始学习有关发送UDP数据包的问题,​​并且遇到了问题。我已经编写了一个Java客户端和服务器,它们可以轻松地相互通信,并且已经完成了Python客户端/服务器组合,但是我不确定如何从Java发送UDP数据包并以Python接收它。这是我为Java客户端准备的:
import java.io.*;
import java.net.*;

public class testclient {
    public static void main(String[] args) throws IOException {
        DatagramSocket socket = new DatagramSocket();

        byte[] buf = new byte[256];
        InetAddress address = InetAddress.getLocalHost();
        DatagramPacket packet = new DatagramPacket(buf, buf.length, address, Integer.parseInt(args[0]));

        System.out.println(\"Sending...\");
        socket.send(packet);

        System.out.println(\"Receiving...\");
        packet = new DatagramPacket(buf, buf.length);
        socket.receive(packet);

        String received = new String(packet.getData(), 0, packet.getLength());
        System.out.println(received);
        System.out.println(\"Done!\");

        socket.close();
    }
}
和Python服务器:
from sys import *
from socket import *

host = gethostname()
port = int(argv[1])
address = (host, port)

print \"Binding...\"
sock = socket(AF_INET, SOCK_DGRAM)
sock.bind(address)

print \"Receiving...\"
data, client = sock.recvfrom(256)

print \"Sending to\", client
sock.sendto(\"Hi\", client)

print \"Closing...\"
sock.close()

print \"Done!\"
我在这里要做的就是将请求从Java客户端发送到Python服务器,然后让Python服务器将“ Hi \”发送回Java客户端,并让客户端打印字符串。对我来说,发生了什么事,客户端发送了数据包,而服务器在2处等待,却从未收到数据包(或者无论如何看起来都是这样)。 有任何想法吗?我猜想Java和Python处理数据包的方式有些不同,但是我不确定。 编辑:只是为了澄清,端口号是通过命令行参数传递给这两个应用程序的。     
已邀请:
问题必须在您的代码内,他们应该能够沟通: 是用Java编写客户端服务器对的一个很好的例子。     
因此,首先,我使用Ubuntu 10.10。 我进入/ etc / hosts,看起来127.0.0.1被分配给localhost.localdomain,而127.0.1.1被分配给我的机器名。因此,Python使用本地主机地址,而Java使用我的计算机名称地址。我将localhost更改为我的计算机名称,并且现在一切正常。 谢谢大家的帮助!     
在Java中,我看到了创建数据包的位置,但是我没有看到您实际上在发送数据之前使用ѭ3将任何数据放入数据包中。     

要回复问题请先登录注册