您的位置:首页 > 移动开发 > Android开发

Android Socket UDP通信的简单演示

2015-06-30 11:05 405 查看
环境说明:

Windows7下的Android Studio 1.1.0

具体内容:

import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPDemo {
    public static void main(String args[]){
        new Thread(new Server()).start();
        new Thread(new Client()).start();
    }
    class Server implements Runnable {
        public static final String SERVERIP = "192.168.1.108";
        public static final String CLIENTIP = "127.0.0.1";
        @Override
        public void run() {
            try {
                //用于接收Client端的数据
                InetAddress serverAddr = InetAddress.getByName(SERVERIP);
                DatagramSocket m_socket = new DatagramSocket(9000, serverAddr);
                byte[] opt = new byte[1024];
                DatagramPacket recvDataPacket = new DatagramPacket(opt, opt.length);
                m_socket.receive(recvDataPacket);
                String result = new String(recvDataPacket.getData(), recvDataPacket.getOffset(), recvDataPacket.getLength());
                System.out.println("Server Receive From Client: " + result);
                //用于向Client端发送数据
                InetAddress clientAddr = InetAddress.getByName(CLIENTIP);
                DatagramSocket m_socket2 = new DatagramSocket();
                byte[] opt2 = new byte[1024];
                opt2 = "Hello,I'm Server".getBytes();
                DatagramPacket setOptPacket = new DatagramPacket(opt2, opt2.length, clientAddr, 9000);
                m_socket2.send(setOptPacket);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    class Client implements Runnable {
        public static final String SERVERIP = "192.168.1.108";
        public static final String CLIENTIP = "127.0.0.1";
        @Override
        public void run() {
            try {
                //用于向Server端发送数据
                InetAddress serverAddr = InetAddress.getByName(SERVERIP);
                DatagramSocket m_socket = new DatagramSocket();
                byte[] opt = new byte[1024];
                opt = "Hello,I'm Client".getBytes();
                DatagramPacket setOptPacket = new DatagramPacket(opt, opt.length, serverAddr, 9000);
                m_socket.send(setOptPacket);
                //用于接收Server端的数据
                InetAddress clientAddr = InetAddress.getByName(CLIENTIP);
                DatagramSocket m_socket2 = new DatagramSocket(9000, clientAddr);
                byte[] opt2 = new byte[1024];
                DatagramPacket recvDataPacket = new DatagramPacket(opt2, opt2.length);
                m_socket2.receive(recvDataPacket);
                String result = new String(recvDataPacket.getData(), recvDataPacket.getOffset(), recvDataPacket.getLength());
                System.out.println("Client Receive From Server: " + result);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

运行结果:

Server Receive From Client: Hello,I'm Client

Client Receive From Server: Hello,I'm Server
Process finished with exit code 0



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: