-
大小: 108KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-11
- 語言: Java
- 標(biāo)簽: MediaPlayer??Http??Get??Proxy??
資源簡介
如何實(shí)現(xiàn)一個簡單的代理服務(wù)器(僅支持Http Get),與Android的MediaPlayer結(jié)合,從而可以擴(kuò)展出“播放 反盜鏈的媒體文件”,“邊播放邊保存”的功能。

代碼片段和文件信息
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.OutputStream;
import?java.net.InetAddress;
import?java.net.InetSocketAddress;
import?java.net.ServerSocket;
import?java.net.Socket;
import?java.net.SocketAddress;
import?java.net.UnknownHostException;
public?class?HttpGetProxy?{
final?private?String?LOCAL_IP_ADDRESS?=?“127.0.0.1“;
final?private?int?HTTP_PORT?=?80;
private?ServerSocket?localServer?=?null;
private?Socket?localSocket?=?null;
private?Socket?remoteSocket?=?null;
private?String?remoteIPAddress;
private?InputStream?in_remoteSocket;
private?OutputStream?out_remoteSocket;
private?InputStream?in_localSocket;
private?OutputStream?out_localSocket;
private?interface?onfinishListener?{
void?onfinishListener();
}
public?HttpGetProxy(int?localport)?{
//?--------建立代理中轉(zhuǎn)服務(wù)器-----------//
try?{
localServer?=?new?ServerSocket(localport?1
InetAddress.getByName(LOCAL_IP_ADDRESS));
}?catch?(UnknownHostException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
/**
?*?結(jié)束時,清除所有資源
?*/
private?onfinishListener?finishListener?=new?onfinishListener(){
@Override
public?void?onfinishListener()?{
System.out.println(“..........release?all..........“);
//Log.e(“---->““..........release?all..........“);
try?{
in_localSocket.close();
out_remoteSocket.close();
in_remoteSocket.close();
out_localSocket.close();
localSocket.close();
remoteSocket.close();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
};
public?void?startProxy(String?remoteIpAddr)?throws?IOException?{
remoteIPAddress?=?remoteIpAddr;
SocketAddress?address?=?new?InetSocketAddress(remoteIPAddressHTTP_PORT);
//?--------連接目標(biāo)服務(wù)器---------//
remoteSocket?=?new?Socket();
remoteSocket.connect(address);
System.out.println(“..........remote?Server?connected..........“);
//Log.e(“---->““..........remote?Server?connected..........“);
in_remoteSocket?=?remoteSocket.getInputStream();
out_remoteSocket?=?remoteSocket.getOutputStream();
System.out.println(“..........init?remote?Server?I/O..........“);
/**
?*?接收本地request,并轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器
?*/
new?Thread()?{
public?void?run()?{
int?bytes_read;
byte[]?local_request?=?new?byte[5120];
try?{
//?本地Socket
localSocket?=?localServer.accept();
System.out.println(“..........localSocket?connected..........“);
// Log.e(“---->““..........localSocket?connected..........“);
in_localSocket?=?localSocket.getInputStream();
out_localSocket?=?localSocket.getOutputStream();
System.out.println(“..........init?local?Socket?I/O..........“);
// Log.e(“---->““..........local?start?to?receive..........“);
String?buffer?=?““;
while?((byt
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-02-06?10:24??HttpGetProxy\
?????目錄???????????0??2012-02-06?10:27??HttpGetProxy\HttpGetProxy\
?????文件?????????232??2012-02-06?10:26??HttpGetProxy\HttpGetProxy\.classpath
?????文件?????????388??2012-02-06?10:26??HttpGetProxy\HttpGetProxy\.project
?????目錄???????????0??2012-02-06?10:50??HttpGetProxy\HttpGetProxy\.settings\
?????文件??????????88??2012-02-06?10:50??HttpGetProxy\HttpGetProxy\.settings\org.eclipse.core.resources.prefs
?????文件?????????629??2012-02-06?10:27??HttpGetProxy\HttpGetProxy\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2012-02-06?11:50??HttpGetProxy\HttpGetProxy\bin\
?????文件????????1308??2012-02-06?11:45??HttpGetProxy\HttpGetProxy\bin\HttpGetProxy$1.class
?????文件????????2897??2012-02-06?11:45??HttpGetProxy\HttpGetProxy\bin\HttpGetProxy$2.class
?????文件????????1298??2012-02-06?11:45??HttpGetProxy\HttpGetProxy\bin\HttpGetProxy$3.class
?????文件?????????223??2012-02-06?11:45??HttpGetProxy\HttpGetProxy\bin\HttpGetProxy$on
?????文件????????3535??2012-02-06?11:45??HttpGetProxy\HttpGetProxy\bin\HttpGetProxy.class
?????文件?????????728??2012-02-06?11:50??HttpGetProxy\HttpGetProxy\bin\testHttpGetProxyForJ2SE.class
?????目錄???????????0??2012-02-06?11:59??HttpGetProxy\HttpGetProxy\src\
?????文件????????5023??2012-02-06?11:26??HttpGetProxy\HttpGetProxy\src\HttpGetProxy.java
?????文件?????????582??2012-02-06?11:59??HttpGetProxy\HttpGetProxy\src\testHttpGetProxyForJ2SE.java
?????目錄???????????0??2012-02-06?13:17??HttpGetProxy\musicpla
?????文件?????????288??2012-02-06?10:38??HttpGetProxy\musicpla
?????文件?????????847??2011-05-09?09:15??HttpGetProxy\musicpla
?????目錄???????????0??2012-02-06?09:02??HttpGetProxy\musicpla
?????文件?????????170??2012-02-06?09:02??HttpGetProxy\musicpla
?????文件?????????629??2011-05-09?09:29??HttpGetProxy\musicpla
?????文件?????????756??2011-05-09?13:47??HttpGetProxy\musicpla
?????目錄???????????0??2011-05-09?09:14??HttpGetProxy\musicpla
?????目錄???????????0??2012-02-06?09:02??HttpGetProxy\musicpla
?????目錄???????????0??2012-02-06?13:17??HttpGetProxy\musicpla
?????文件???????13436??2012-02-06?09:02??HttpGetProxy\musicpla
?????文件???????13032??2012-02-06?13:17??HttpGetProxy\musicpla
?????目錄???????????0??2012-02-06?13:17??HttpGetProxy\musicpla
?????目錄???????????0??2012-02-06?13:17??HttpGetProxy\musicpla
............此處省略64個文件信息
評論
共有 條評論