现在我做的东西要将Android的机子和另一个模块设备通过无线路由用UDP方式互相通信,至于那个模块,您可以理解为令一个Android的机子,也是有IP地址的,模块里面提供了一些协议:UDP模式:“目标端口号”设置为非0,模块将仅仅与目标一对一交互,该配置不能接收广播报文;“目标端口号”设置为0,表示不限制目标客户端IP与端口,网络端接收到任何数据都转发到串口(串口接收数据将无法发送回网络端),这种配置可以接收广播报文。UDP模式目前不支持通过域名解析对方IP;(这些不知道是什么也没有关系)
就这么多按照上面的协议,我写了个程序发送数据给他,这是发送数据的代码:
/** */
/**
 * 向指定的服务端发送数据信息.
 * 
 * @param host
 *            服务器主机地址
 * @param port
 *            服务端端口
 * @param bytes
 *            发送的数据信息
 * @return 返回构造后的数据报
 * @throws IOException
 */
public DatagramPacket send(final String host, final int port,
final byte[] bytes) throws IOException { DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress
.getByName(host), port);
ds.send(dp);
return dp;
}
/** */
/**
 * 测试客户端发包和接收回应信息的方法.
 * 
 * @param args
 * @throws Exception
 */
public void sendMessage(String msg) throws Exception {
// 192.168.1.66
String serverHost = "192.168.1.222";
int serverPort = 8568;
send(serverHost, serverPort, msg.getBytes());
}在发送数据过去的时候,那边没有反应(判断有没有反应是因为那个模块无论接收到什么数据都会转发到另一个监听设备上面)
IP地址,端口号,按照上面设置的没有错,两个无线设备这样通信能行的吗?行的话要加入什么东西,我总感觉这中间少了点什么似的;(网络权限已经加上去了)。