⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 receivemsg.java

📁 本视频会议服务器端代码:根据自己定义的协议:能构穿透nat 需要java jmf框架 * 我开放源代码是为了更好的让java这门程序艺术更好的发展
💻 JAVA
字号:
/*
 *  这个类是关键的类 主要功能是用来解析传入的命令和服务器将要执行的动作
 *  2008年1月5号  写 
 */
/*
 *     程序员杨龙:本视频会议服务器端代码:根据自己定义的协议:能构穿透nat 需要java jmf框架
 *     我开放源代码是为了更好的让java这门程序艺术更好的发展:您可以研究代码,您可以自己使用
 *     但是不要使用在商业用途上 让我们更好的把开源事业在中国做下去
 *     2008年 3月  杨龙 完成服务器端的框架 
 *     信箱 :y_flash@163.com
 *     QQ:274797328
 *     www.0351soft.com   www.lx08.com  
 */
package ytp.javaserver.server;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 *
 * @author Administrator
 */
public class receiveMsg extends Thread{
    public DatagramPacket dataPack = null;
    public DatagramSocket datasocket = null;
    public int  receiveStat = 0;
    /** Creates a new instance of receiveMsg */
    public receiveMsg(DatagramSocket datasocket) {
      this.datasocket = datasocket;
       
    }
    public void run()
    {
       
          if(this.datasocket != null)
        {
            this.receiveStat = 1;
            String strTemp = null;
            byte[] bBuffer = null;
           String[][] ClientList = new String[100][5];
           String[]    ClientIndex =new String[100];
           int i ;
            while(true)
            {
                //维系客户端列表
                
                System.out.println("服务器开始接收信息");
                try {
                    if(this.receiveStat == 1)
                    {   bBuffer = new byte[2048];
                        this.dataPack = null;
                        this.dataPack = new DatagramPacket(bBuffer,bBuffer.length);
                        this.datasocket.receive(dataPack);  
                       System.out.println("接收命令 == 开始解析命令"); 
                       
                        
                        
                        
                        
                        
                        System.out.println("接收到了数据包:"+(new String(dataPack.getData())));
                        //从这里起重点就是解析命令: 也是这个类的主要工作
                        /************************************************************************
                         *  功能就是将客户端的命令解析为服务器的动作,加以执行,目前将要执行的操作如下:*
                         *  给一个局域网络发送RTP流,客户端的命令中包括地址 端口其他用的端口,客户端的 *
                         *  命令为: getRTPtoMe&IP:127.0.0.1&visiPort:2000&listPort:2002          *
                         *  这个将执行一个接收客户端的数据流 将数据流发送出去                       *
                         ************************************************************************/
                         
                        
                        
                        
                        /************************************************************************
                         * 本模块的功能是将服务器上的媒体文件以数据流的形式发送出去,不制定客户端的地址*
                         *************************************************************************/
                        if((new String(dataPack.getData())).startsWith("getClientList"))
                        {
                            //开始执行动作  将服务器的客户列表发送出去
                            System.out.println("接收到了获取客户列表的命令");
                            
                        }
                        
                        /******************************************************************
                         *        将客户得列表发送到连接得每一个客户端 远程端口为2010             */
                         //**********************************************************************
                        if((new String(dataPack.getData())).startsWith("getClientList"))
                        {
                            //开始执行动作  将服务器的客户列表发送出去
                            System.out.println("接收到了获取客户列表的命令");
                            
                        }
                        
                        
                        //解析命令
                        strTemp = dataPack.getAddress().getHostName();
                        this.datasocket.send(dataPack);
                        System.out.println(strTemp);
                    }else
                    {
                        System.out.println("服务器接收信息已经停止");
                    }
                  
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
          
        }
    }
    public int getStat()
    {
        return this.receiveStat;
    }
    public void setStat()
    {
        this.receiveStat = 0;
    }
    public DatagramPacket getPack()
    {
       // DatagramPacket tempData = this.dataPack;
       
       return this.dataPack;
    }
    private void setPack(DatagramPacket pack)
    {
        this.dataPack = pack;
    }
    
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -