protected void connectServerWithUDPSocket(Context context, String id) {
DatagramSocket socket; try {
//创建DatagramSocket对象并指定一个端口号,注意,如果客户端需要接收服务器的返回数据, //还需要使用这个端口号来receive,所以一定要记住 socket = new DatagramSocket( null ); //使用InetAddress(Inet4Address).getByName把IP地址转换为网络地址 InetAddress serverAddress = null ; mHost = Utils.getLocalIpStr(context); Log.d(TAG, "connectServerWithUDPSocket mHost =" + mHost); if ( null == mHost) return ; try {
serverAddress = InetAddress.getByName(mHost); } catch (UnknownHostException e) {
Log.d(TAG, "未找到服务器" ); e.printStackTrace(); } //Inet4Address serverAddress = (Inet4Address) Inet4Address.getByName("192.168.1.32"); String str = id; //设置要发送的报文 byte data[] = str.getBytes(); //把字符串str字符串转换为字节数组 //创建一个DatagramPacket对象,用于发送数据。 //参数一:要发送的数据 参数二:数据的长度 参数三:服务端的网络地址 参数四:服务器端端口号 DatagramPacket packet = new DatagramPacket(data, data.length, serverAddress, PORT); try {
socket.send(packet); //把数据发送到服务端。 } catch (IOException e) {
Log.d(TAG, "发送失败" ); e.printStackTrace(); } Log.d(TAG, "socket.send------------------------" ); } catch (SocketException e) {
Log.i(TAG, "建立接收数据报失败" ); e.printStackTrace();
|