java 怎么用UDP实时接收数据?

java 怎么用UDP实时接收数据?,第1张

我自己写的代码:

import javaioIOException;
import javanetDatagramPacket;
import javanetDatagramSocket;
import javanetInetAddress;
import javanetSocketException;
import javanetUnknownHostException;
public class UdpRecvDemo
{
    public static void main(String[] args) throws IOException
    {
        Recv();
    }
    
    public static void Recv() throws IOException
    {
        Systemoutprintln("接受开始");
        DatagramSocket ds = new DatagramSocket(3388);
        while(true)
        {
            byte[]buf = new byte[1024];
            DatagramPacket dp = new DatagramPacket(buf,buflength);
            dsreceive(dp);
            Systemoutprintln(ds);
            String ip = dpgetAddress()getHostAddress();
            int port = dpgetPort();
            String text = new String(dpgetData(),0,dpgetLength());
            if(textequals("exit"))
                {
                    Systemoutprintln(ip+"退出会话");
                    break;
                }
            Systemoutprintln(ip+":"+port+"===>me "+text);
        }
        dsclose();
    }
}

使用socket编程即可。 1、网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等 *** 作都是通过该Socket实现的。 2

udp是数据报协议,一次发送只要不超过65535字节(一般为6000字节以下才能发送成功),协议栈就加上udp头一次发送,当然IP层会分片。但接收端肯定是一次收到或者没收到,而不是分为两次或多次收到。你可以用select,epoll这些多路IO就知道,它只会通知一次。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13356951.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-31
下一篇2025-08-31

发表评论

登录后才能评论

评论列表(0条)

    保存