| | |
| | | package com.hdl.sdk.socket.client; |
| | | |
| | | |
| | | import android.content.Context; |
| | | import android.net.wifi.WifiManager; |
| | | import android.text.TextUtils; |
| | | |
| | | import com.hdl.sdk.common.HDLSdk; |
| | | import com.hdl.sdk.common.utils.IpUtils; |
| | | import com.hdl.sdk.common.utils.LogUtils; |
| | | import com.hdl.sdk.socket.SocketPool; |
| | |
| | | */ |
| | | private DatagramPacket receivePacket; |
| | | |
| | | private WifiManager.MulticastLock lock; |
| | | /** |
| | | * 缓冲区大小 |
| | | */ |
| | |
| | | this.socketOptions = socketOptions; |
| | | byte[] receiveByte = new byte[BUFFER]; |
| | | receivePacket = new DatagramPacket(receiveByte, receiveByte.length); |
| | | |
| | | WifiManager manager = (WifiManager) HDLSdk.getInstance().getContext().getApplicationContext() |
| | | .getSystemService(Context.WIFI_SERVICE); |
| | | this.lock = manager.createMulticastLock("UDPwifi"); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | @Override |
| | | public void bind() throws Exception { |
| | | public synchronized void bind() throws Exception { |
| | | try { |
| | | //已经绑定过就不用再绑定 |
| | | if (null != mSocket) { |
| | | return; |
| | | } |
| | | lock.acquire(); |
| | | if (TextUtils.isEmpty(ipAddress)) { |
| | | mSocket = SocketPool.getInstance().getUdpSocket(new InetSocketAddress(port)); |
| | | } else { |