【发布时间】:2014-12-29 19:50:59
【问题描述】:
我正在尝试通过数据报套接字与 2 台机器通信,但我想我错过了一些东西...... 机器 A 运行 Android 应用程序(客户端) 机器 B 是用 Python 编写的服务器
我可以毫无问题地从 A 向 B 发送消息,但 A 从来没有从 B 得到答案,代码如下:
客户端(Java):
InetAddress serverAddr = InetAddress.getByName("10.0.0.10");
DatagramSocket socket = new DatagramSocket();
byte[] bufSent = "register".getBytes();
DatagramPacket dpSent = new DatagramPacket(bufSent,bufSent.length, serverAddr, 8088);
socket.send(dpSent);
byte[] bufRecv = new byte[1024];
DatagramPacket dpReceive = new DatagramPacket(bufRecv, bufRecv.length);
socket.receive(dpReceive);
String serverMessage = new String(dpReceive.getData(), 0, dpReceive.getLength());
Log.v(LOGTAG, "Received " + serverMessage);
服务器(Python):
import socket
UDP_IP_DEST = "10.0.0.11"
UDP_IP = "10.0.0.10"
UDP_PORT = 8088
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
if data:
print "received message:", data
sock.sendto("I got the message", (UDP_IP_DEST, UDP_PORT))
有谁知道错误在哪里?关键是我尝试将答案发送到另一台机器而不是手机,并且效果很好。
非常感谢。
【问题讨论】:
标签: java android python udp datagram