📄 receivemsg.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 + -