繁体   English   中英

Android UDP套接字

[英]Android UDP socket

嗨,我目前正在为我的程序创建UDP连接,目前是其本地主机,我将如何插入我的IP地址,以便同一网络中的另一台计算机将能够接收我在服务器端键入的消息。

UDPSERVER
package testing;

import java.io.*;
import java.net.*;
public class UdpServer {

    public static void main(String args[]) {
        String str;
        try {
            BufferedReader Br;
            Br = new BufferedReader(new InputStreamReader(System. in ));
            DatagramSocket Sock;
            Sock = new DatagramSocket(1000);
            DatagramPacket Dp;
            System.out.println("Enter the data..... Enter 'exit' to stop");
            while (true) {
                str = Br.readLine();
                Dp = new DatagramPacket(str.getBytes(), str.length(),
                    InetAddress.getByName("localhost"), 2000);
                Sock.send(Dp);
                if (str.equals("exit")) break;
            }
            Sock.close();
        } catch (Exception e) {}
    }
}

UdpClient
package testing;
import java.net.*;
public class UdpClient {
    public static void main(String arg[]) {
        String str;
        DatagramSocket Sock;
        DatagramPacket Dp;
        try {
            Sock = new DatagramSocket(2000);
            byte Buff[] = new byte[1024];
            System.out.println("Client ready...");
            while (true) {
                Dp = new DatagramPacket(Buff, 1024);
                Sock.receive(Dp);
                str = new String(Dp.getData(), 0, Dp.getLength());
                System.out.println(str);
                if (str.equals("exit")) break;
            }
            Sock.close();
        } catch (Exception e) {
            System.out.println("Connection failure...");
        } finally {
            System.out.println("Server Disconnected...");
        }
    }
}

第一步是尝试对另一台计算机的IP进行硬编码并进行测试。 如果可行,请查看添加UDP广播发现。 这是Java中的示例: http : //michieldemey.be/blog/network-discovery-using-udp-broadcast/

这个想法是所有需要通话的设备都通过UDP广播。 一旦他们听到广播,就需要彼此连接。 通常,需要预先确定一侧为服务器,另一侧为客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM