已知端口ip 基于UDP协议 通过局域网连接接收信息
2016-12-30 00:26
501 查看
package com.example.test1; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class TestUDP { private byte[] buffer = new byte[1024]; private DatagramSocket ds = null; /** * 构造函数,创建UDP客户端 * @throws Exception */ public TestUDP() throws Exception { ds = new DatagramSocket(); } /** * 设置超时时间,该方法必须在bind方法之后使用. * @param timeout 超时时间 * @throws Exception */ public final void setSoTimeout(final int timeout) throws Exception { ds.setSoTimeout(timeout); } /** * 获得超时时间. * @return 返回超时时间 * @throws Exception */ public final int getSoTimeout() throws Exception { return ds.getSoTimeout(); } public final DatagramSocket getSocket() { return ds; } /** * 向指定的服务端发送数据信息. * @param host 服务器主机地址 * @param port 服务端端口 * @param bytes 发送的数据信息 * @return 返回构造后俄数据报 * @throws IOException */ public final 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 lhost 服务端主机 * @param lport 服务端端口 * @return 返回从指定的服务端发回的数据. * @throws Exception */ public final String receive(final String lhost, final int lport) throws Exception { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); String info = new String(dp.getData(), 0, dp.getLength()); return info; } /** * 关闭udp连接. */ public final void close() { try { ds.close(); } catch (Exception ex) { ex.printStackTrace(); } } } }
package com.example.test1; import java.io.IOException; import java.io.InterruptedIOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import android.content.Context; import android.os.Handler; import android.util.Log; import android.widget.Toast; public class UDPConectTest extends Thread { private static final int TIMEOUT = 3000; private static final int MAXTRIES = 5; public Context mContext; public Handler mHandler; public UDPConectTest(Context context, Handler handler) { // TODO Auto-generated constructor stub mContext = context; mHandler = handler; } @Override public void run() { Log.i("UDP", "开始"); // TODO Auto-generated method stub super.run(); try { TestUDP client; client = new TestUDP(); String serverHost = "192.168.201.254"; int serverPort = 5190; client.setSoTimeout(TIMEOUT); client.send(serverHost, serverPort, ("wi-drivec=192.168.201.100").getBytes()); String info = client.receive(serverHost, serverPort); Log.i("UDP", "服务端回应数据:" + info); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
请问为什么无法得到服务器返还得数据呢 我是新人 渴望得到大家的帮助 谢谢
这个是接口的example:
Client:
wi-drivec=192.168.201.101
Server return:
wi-drives=192.168.201.254 model='mlw2' version='2.0.0.0' ssid="MLWG2-0004"
Server: SD_CARD or USB is connected/disconnected UDP packet send to broadcast(192.168.201.255).
Example: Server send: wi-drives=192.168.201.254 SD_CARD1 = connected
相关文章推荐
- iOS 怎样通过UDP发送广播寻找设备,拿到局域网的设备ip 和 端口
- 基于 TCP (面向连接)和无连接UDP协议的 socket 套接字编程
- 显示协议统计信息和当前 TCP/IP 网络连接。
- linux下基于Qt的udp协议 pc机与Tiny210(arm板子)互相发送文字信息的实现 记录(1)
- Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败
- android 通过局域网udp广播自动建立socket连接
- 解决: 关于配置局域网内通过一台WEB服务器连接到域服务器进行身份验证的IP设置
- Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。。。
- android 通过局域网udp广播自动建立socket连接
- (java)在两台已知Ip的电脑间,使用UDP协议进行通讯
- 查看端口信息netstat,查看ip,连接端口
- 用vb制作ActiveX Dll中,怎么让程序连接远程机器1888端口,并且等待接收信息
- 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。
- Android使用wifi通过UDP协议发送广播数据包给PC接收不到问题解决方法
- 基于HHARM9-EDU的TCP/IP(UDP)协议的实现
- com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接
- Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败
- 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。
- 获得TCP,IP,UDP协议信息
- 基于UDP协议的网络编程(使用DatagramSocket发送接收数据)