資源簡介
JAVA實現(xiàn)的流服務(直播,點播),JAVA實現(xiàn)的RTSP協(xié)議,可以實現(xiàn)與網(wǎng)絡客戶端的交互

代碼片段和文件信息
package?main.java.rvsup.controller;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.math.BigInteger;
import?java.net.ServerSocket;
import?java.net.Socket;
import?java.security.MessageDigest;
import?java.text.SimpleDateFormat;
import?java.util.Date;
import?java.util.Locale;
import?java.util.UUID;
/**
?*?@author?lenovo?on?2017/12/1.
?*?@version?1.0
?*/
public?class?RtspServer?{
????private?static?final?String?CRLF?=?“\r\n“;
????private?static?final?String?LOCAL_IP?=?“192.168.0.216“;
????private?static?final?String?password?=?“zhidu!2#4“;
????private?static?AvsServer?avsServer?=?new?AvsServer();
????private?static?String?client_port?=?null;
????/**
?????*?Socket服務端
?????*/
????public?static?void?main(String[]?args)?{
????????Socket?socket?=?null;
????????InputStream?inputStream?=?null;
????????InputStreamReader?inputStreamReader?=?null;
????????BufferedReader?bufferedReader?=?null;
????????OutputStream?outputStream?=?null;
????????PrintWriter?printWriter?=?null;
????????try?{
????????????ServerSocket?serverSocket=new?ServerSocket(554);
????????????System.out.println(“服務端已啟動,等待客戶端連接..“);
????????????socket=serverSocket.accept();//偵聽并接受到此套接字的連接返回一個Socket對象
????????????//根據(jù)輸入輸出流和客戶端連接
????????????inputStream=socket.getInputStream();//得到一個輸入流,接收客戶端傳遞的信息
????????????inputStreamReader=new?InputStreamReader(inputStream);//提高效率,將字節(jié)流轉(zhuǎn)為字符流
????????????bufferedReader=new?BufferedReader(inputStreamReader);//加入緩沖區(qū)
????????????outputStream=socket.getOutputStream();//獲取一個輸出流,向客戶端發(fā)送信息
????????????printWriter=new?PrintWriter(outputStream);//將輸出流包裝成打印流
????????????String?temp;
????????????String?info;
????????????while(true){
????????????????temp?=?null;
????????????????info?=?““;
????????????????//將緩沖區(qū)中的字符流組成字符串
????????????????//這個循環(huán)用((temp?=?bufferedReader.readLine())?!=?null)跳不出來,因為socket沒有斷開
????????????????while(!(temp=bufferedReader.readLine()).equals(““)){
????????????????????info+=temp;
????????????????}
????????????????System.out.println(“服務端接收到客戶端信息:“+info+“當前客戶端ip和port為:“+socket.getInetAddress().getHostAddress()+“?“+socket.getPort());
????????????????if(info.startsWith(“DESCRIBE“)){
????????????????????if(!info.contains(“Authorization“)){
????????????????????????//sescribe請求第一步,無鑒權(quán)信息,回復401
????????????????????????authorizationFailed(info?printWriter);
????????????????????}else{
????????????????????????if(authorization(info?“DESCRIBE“)){
????????????????????????????//describe請求鑒權(quán)成功,回復200OK
????????????????????????????describeAuthorizationSuccess(info?printWriter);
????????????????????????}else{
????????????????????????????//鑒權(quán)失敗,回復401
????????????????????????????authorizationFailed(info?printWriter);
????????????????????????}
????????????????????}
????????????????}else?if(info.startsWith(“SETUP“)){
????????????????????if(auth
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????13448??2017-12-18?15:45??JRTSPServer\RtspServer.java
?????目錄???????????0??2018-11-16?10:31??JRTSPServer\
評論
共有 條評論