如何将数据从 Android 中的数据报套接字发送到 Node js 服务器?
Posted
技术标签:
【中文标题】如何将数据从 Android 中的数据报套接字发送到 Node js 服务器?【英文标题】:How to send data from datagram socket in Android to Node js Server? 【发布时间】:2020-03-18 23:23:06 【问题描述】:我尝试为 android 编写在线游戏。我的第一步是建立连接 在客户端/android应用程序和服务器之间。 服务器在 Node js 上运行。
首先,我尝试通过本地网络将数据从客户端发送到服务器。 问题是即使如此简单的事情也无法以某种方式起作用。服务器 无法从客户端接收任何数据。
客户:
public class LongOperation extends AsyncTask<Void, Void, Void>
@Override
protected Void doInBackground(Void... params)
try
String messageStr = "Hallo Welt";
DatagramSocket s = new DatagramSocket();
InetAddress local = null;
local = InetAddress.getByName("127.0.0.1");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local, 12345);
s.send(p);
android.util.Log.w("UDP", "Works fine!");
catch (Exception e)
System.err.println("ERROR! !");
e.printStackTrace();
return null;
服务器:
'use strict';
var PORT = 12345;
var HOST = '127.0.0.1';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.on('listening', function ()
var address = server.address();
console.log('UDP Server listening on ' + address.address + ':' + address.port);
);
server.on('message', function (message, remote)
console.log(remote.address + ':' + remote.port + ' - ' + message);
);
server.bind(PORT, HOST);
我在这里忽略了什么?
【问题讨论】:
【参考方案1】:使用
server.bind(PORT);
相反。我尝试与另一个客户。但是在我更改服务器端之前,它没有用。所以我不确定你的客户端
【讨论】:
以上是关于如何将数据从 Android 中的数据报套接字发送到 Node js 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
Alpakka UDP:如何通过已绑定的套接字响应收到的数据报?