问大家一下,为什么搞了半天,还在云里雾里徘徊, 想撞墙啊, 那里有泡沫做的墙,我撞。
还有个问题问大家, 请问我有可能把 流媒体自己研究出来吗。好想踢足球啊!!!!!!!!!!!!!!!!!!!!!!!!!
还有个问题问大家, 请问我有可能把 流媒体自己研究出来吗。好想踢足球啊!!!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- $(window).bind()
- spring+hibernate整合出现问题。
- 在线等。我想在jsp页面上传文件 请问怎么限制他上传文件的大小呢?在jsp页面里
- 大侠。。。struts2。。关于超链接提交。。。
- 大家好!我现在有一个txt文件,怎么样让它在JSP页面上显示!!
- 关于Submit提交数据的问题(在线等……)
- 如何将java中产生的随机数也能在javascript中进行判断
- 连接数据库SQLserver的问题??
- Spring发送邮件问题
- if... else... 抢分。
- Jsp文件里有多个同名的文本框,如何用javascript计算他们的相加值?
- 请教一个简单关于图片切换的问题
这里发言,表示您接受了CSDN社区的用户行为准则。
请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。 sf(算法)
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;public class Test {
private static int seq = 1 ;
private static final String CRLF = "\r\n";
private static final String URL = "rtsp://192.168.4.45:554/service?";
//private static final String URL = "rtsp://192.168.3.80:554/D:\\1122.mp4";
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Test t = new Test();
t.start();
}private void start() throws IOException {
// TODO 自动生成方法存根
String mes = "";Socket s = new Socket(InetAddress.getByName("124.42.50.52"), 554);
PrintWriter out = new PrintWriter(s.getOutputStream());
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());// 第一次发数据
// out.print("OPTIONS rtsp://124.42.50.52:554 RTSP/1.0" + CRLF);
// out.print("CSeq: 1" + CRLF);
// out.print("User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)"
// + CRLF);
// out.print("ClientChallenge: 9e26d33f2984236010ef6253fb1887f7" + CRLF);
// out.print("PlayerStarttime: [28/03/2003:22:50:23 00:00]" + CRLF);
// out.print("CompanyID: KnKV4M4I/B2FjJ1TToLycw==" + CRLF);
// out.print("GUID: 00000000-0000-0000-0000-000000000000" + CRLF);
// out.print("RegionData: 0" + CRLF);
// out.print("ClientID: Linux_2.4_6.0.9.1235_play32_RN01_EN_586" + CRLF);
// out.print("Pragma: initiate-session" + CRLF);
// out.print(CRLF);
// out.print(CRLF);
// out.flush();
// mes = read(bis);
// System.out.println(mes);//String realChallenge1 = getValue(mes, "RealChallenge1: ");//System.out.println("2:-->" + mes);
// 第二次发送数据
out.print("DESCRIBE " + URL + " RTSP/1.0"
+ CRLF);out.print("CSeq: " + seq++ + CRLF);
// out.print("User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)"
// + CRLF);
out.print("Accept: application/sdp" + CRLF);
//out.print("Session:" + session + CRLF);
out.print("Bandwidth: 10485800" + CRLF);
out.print("SupportsMaximumASMBandwidth: 1" + CRLF);
out.print("GUID: 00000000-0000-0000-0000-000000000000" + CRLF);
out.print("Require: implicit-play" + CRLF);
out.print("RegionData: 0" + CRLF);
out.print(CRLF);
out.print(CRLF);
out.flush();
mes = read(bis);
System.out.println("DESCRIBE:-->" + mes);//String realChallenge2 = RealChallenge.calcChallenge(realChallenge1);
//String realCheckSum = RealChallenge.calcCheckSum(realChallenge2);
// 第三次发送数据
out.print("SETUP rtsp://124.42.50.52:554/service/streamid=0 RTSP/1.0"
+ CRLF);
out.print("CSeq: " + seq++ + CRLF);
//out.print("RealChallenge2: " + realChallenge2 + ", sd=" + realCheckSum
// + CRLF);
out.print("RDTFeatureLevel: 2" + CRLF);
// out.print("User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)"
// + CRLF);
out.print("Transport: x-pn-tng/tcp; mode=play" + CRLF);
//out.print("If-Match:" + session + CRLF);
out.print(CRLF);
out.print(CRLF);
out.flush();
System.out.println("SETUP:-->" + mes);
String session = getValue(mes, "Session:");
System.out.println("11111111??:" + session);
// 第四次发送数据
// out.print("SETUP rtsp://124.42.50.52:554/service/streamid=1 RTSP/1.0"
// + CRLF);
// out.print("CSeq: " + seq++ + CRLF);
// out.print("Subscribe: stream=0;rule=0,stream=0;rule=1" + CRLF);
// out.print("RDTFeatureLevel: 2" + CRLF);
// out.print("Transport: x-pn-tng/tcp; mode=play" + CRLF);
// out.print("User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)"
// + CRLF);
// out.print("Session:" + session + CRLF);
// out.print(CRLF);
// out.print(CRLF);
// out.flush();
// System.out.println("SETUP:-->" + mes);// 可能会用UDP传输数据,真晕啊// 第五次发送数据// out.print("SET_PARAMETER rtsp://124.42.50.52:554/service RTSP/1.0"
// + CRLF);
// out.print("CSeq: 5" + CRLF);
// out.print("Subscribe: stream=0;rule=0,stream=0;rule=1,stream=1;rule=0,stream=1;rule=1"
// + CRLF);
// //out.print("Session:" + session + CRLF);
// //out.print(CRLF);
// out.print(CRLF);
// out.flush();
//
// mes = read(bis);
// System.out.println("SET_PARAMETER:-->" + mes);
session = getValue(mes, "Session:");
out.print("PLAY " + URL + " RTSP/1.0" + CRLF);
out.print("CSeq: " + seq++ + CRLF);
out.print("Session:" + session + CRLF);
// out.print("User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)"
// + CRLF);
out.print("Range: npt=0.000-" + CRLF);
out.print(CRLF);
out.print(CRLF);
out.flush();
mes = read(bis);System.out.println("PLAY:-->" + mes);byte[] b = new byte[1024];
int t = 0, t1 = 0;
boolean f = true;
StringBuilder sb = new StringBuilder();
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream("d:/tmp.rm"));while ((t = bis.read(b)) > 0) {
System.out.println(new String(b, 0, t));
// if (f) {
// // 没有找到
// t1 = sb.length();
// sb.append(new String(b, 0, t));
// int index = sb.indexOf(CRLF + CRLF);
// if (index < 0)
// continue;
// f = false;
// bos.write(b, index - t1 + 2, b.length + t1 - 2 - index);
// } else {
// bos.write(b, 0, t);
// }
// System.out.println("读取:" + t + "bits");
}
System.out.println("完成");
bos.close();
bis.close();
s.close();
}private static String read(BufferedInputStream bis) throws IOException {
byte[] b = new byte[1024];
StringBuilder sb = new StringBuilder();int r = 0;
while (sb.toString().indexOf(CRLF + CRLF) < 0 && (r = bis.read(b)) > 0) {
sb.append(new String(b, 0, r));
}
return sb.toString();
}private static String getValue(String mes, String key) {
int index = mes.indexOf(key);
if (index < 0)
return null;
return (mes.substring(index + key.length(), mes.indexOf("\r\n", index)));
}
}