java 中怎么使用UDP?

我用java播放一段视频,我想同时在一个大屏幕上播放。我的实现方法是,把我java程序获取的码流发送给控制大屏的C++程序。这边要求使用的是UDP协议,要我建立客户端。我... 我用java播放一段视频,我想同时在一个大屏幕上播放。我的实现方法是,把我java程序获取的码流发送给控制大屏的C++程序。
这边要求使用的是UDP协议,要我建立客户端。
我的码流数据是 pBuffer(存放数据的缓冲区指针) ,我知道C++程序所在的机器的Ip和以及程序端口号。
怎么样去实现?
刚毕业,求详细。最好写代码给我看。
展开
 我来答
百度网友211658b42
推荐于2017-09-11 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:614万
展开全部

发送步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。

将数据打包到DatagramPacket中去

通过socket服务发送 (send()方法)

关闭资源

import java.io.IOException;  
import java.net.*;  
  
public class Send {  
  
    public static void main(String[] args)  {  
          
        DatagramSocket ds = null;  //建立套间字udpsocket服务  
          
        try {  
          ds = new DatagramSocket(8999);  //实例化套间字,指定自己的port  
        } catch (SocketException e) {  
            System.out.println("Cannot open port!");  
            System.exit(1);   
        }  
          
        byte[] buf= "Hello, I am sender!".getBytes();  //数据  
        InetAddress destination = null ;  
        try {  
            destination = InetAddress.getByName("192.168.1.5");  //需要发送的地址  
        } catch (UnknownHostException e) {  
            System.out.println("Cannot open findhost!");  
            System.exit(1);   
        }  
        DatagramPacket dp =   
                new DatagramPacket(buf, buf.length, destination , 10000);    
        //打包到DatagramPacket类型中(DatagramSocket的send()方法接受此类,注意10000是接受地址的端口,不同于自己的端口!)  
          
        try {  
            ds.send(dp);  //发送数据  
        } catch (IOException e) {  
        }  
        ds.close();  
    }  
}

接收步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

使用DatagramPacket的方法,提取数据。

关闭资源。

import java.net.*;  
  
public class Rec {  
  
    public static void main(String[] args) throws Exception {  
          
        DatagramSocket ds = new DatagramSocket(10000);  //定义服务,监视端口上面的发送端口,注意不是send本身端口  
          
        byte[] buf = new byte[1024];//接受内容的大小,注意不要溢出  
          
        DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定义一个接收的包  
          
        ds.receive(dp);//将接受内容封装到包中  
          
        String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出内容  
          
        System.out.println(data);//打印内容  
          
        ds.close();//关闭资源     
    }  
}
匿名用户
2014-12-24
展开全部
这个差太多了,在知道的搜索栏,搜索 java udp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式