日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)

發布時間:2023/12/14 Android 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android基礎入門教程——7.6.3 基于TCP協議的Socket通信(2)

標簽(空格分隔): Android基礎入門教程


本節引言:

上節中我們給大家接觸了Socket的一些基本概念以及使用方法,然后寫了一個小豬簡易聊天室的
Demo,相信大家對Socket有了初步的掌握,本節我們來學習下使用Socket來實現大文件的斷點續傳!
這里講解的是別人寫好的一個Socket上傳大文件的例子,不要求我們自己可以寫出來,需要的時候會用
就好!


1.運行效果圖:

1.先把我們編寫好的Socket服務端運行起來:

2.將一個音頻文件放到SD卡根目錄下:

3.運行我們的客戶端:

4.上傳成功后可以看到我們的服務端的項目下生成一個file的文件夾,我們可以在這里找到上傳的文件:
.log那個是我們的日志文件


2.實現流程圖:


3.代碼示例:

先編寫一個服務端和客戶端都會用到的流解析類:

StreamTool.java

public class StreamTool {public static void save(File file, byte[] data) throws Exception {FileOutputStream outStream = new FileOutputStream(file);outStream.write(data);outStream.close();}public static String readLine(PushbackInputStream in) throws IOException {char buf[] = new char[128];int room = buf.length;int offset = 0;int c;loop: while (true) {switch (c = in.read()) {case -1:case '\n':break loop;case '\r':int c2 = in.read();if ((c2 != '\n') && (c2 != -1)) in.unread(c2);break loop;default:if (--room < 0) {char[] lineBuffer = buf;buf = new char[offset + 128];room = buf.length - offset - 1;System.arraycopy(lineBuffer, 0, buf, 0, offset);}buf[offset++] = (char) c;break;}}if ((c == -1) && (offset == 0)) return null;return String.copyValueOf(buf, 0, offset);}/*** 讀取流* @param inStream* @return 字節數組* @throws Exception*/public static byte[] readStream(InputStream inStream) throws Exception{ByteArrayOutputStream outSteam = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while( (len=inStream.read(buffer)) != -1){outSteam.write(buffer, 0, len);}outSteam.close();inStream.close();return outSteam.toByteArray();} }

1)服務端的實現:

socket管理與多線程管理類:

FileServer.java

public class FileServer { private ExecutorService executorService;//線程池 private int port;//監聽端口 private boolean quit = false;//退出 private ServerSocket server; private Map<Long, FileLog> datas = new HashMap<Long, FileLog>();//存放斷點數據 public FileServer(int port){ this.port = port; //創建線程池,池中具有(cpu個數*50)條線程 executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 50); } /** * 退出 */ public void quit(){ this.quit = true; try { server.close(); } catch (IOException e) { } } /** * 啟動服務 * @throws Exception */ public void start() throws Exception{ server = new ServerSocket(port); while(!quit){ try { Socket socket = server.accept(); //為支持多用戶并發訪問,采用線程池管理每一個用戶的連接請求 executorService.execute(new SocketTask(socket)); } catch (Exception e) { // e.printStackTrace(); } } } private final class SocketTask implements Runnable{ private Socket socket = null; public SocketTask(Socket socket) { this.socket = socket; } public void run() { try { System.out.println("accepted connection "+ socket.getInetAddress()+ ":"+ socket.getPort()); PushbackInputStream inStream = new PushbackInputStream(socket.getInputStream()); //得到客戶端發來的第一行協議數據:Content-Length=143253434;filename=xxx.3gp;sourceid= //如果用戶初次上傳文件,sourceid的值為空。 String head = StreamTool.readLine(inStream); System.out.println(head); if(head!=null){ //下面從協議數據中提取各項參數值 String[] items = head.split(";"); String filelength = items[0].substring(items[0].indexOf("=")+1); String filename = items[1].substring(items[1].indexOf("=")+1); String sourceid = items[2].substring(items[2].indexOf("=")+1); long id = System.currentTimeMillis();//生產資源id,如果需要唯一性,可以采用UUID FileLog log = null; if(sourceid!=null && !"".equals(sourceid)){ id = Long.valueOf(sourceid); log = find(id);//查找上傳的文件是否存在上傳記錄 } File file = null; int position = 0; if(log==null){//如果不存在上傳記錄,為文件添加跟蹤記錄 String path = new SimpleDateFormat("yyyy/MM/dd/HH/mm").format(new Date()); File dir = new File("file/"+ path); if(!dir.exists()) dir.mkdirs(); file = new File(dir, filename); if(file.exists()){//如果上傳的文件發生重名,然后進行改名 filename = filename.substring(0, filename.indexOf(".")-1)+ dir.listFiles().length+ filename.substring(filename.indexOf(".")); file = new File(dir, filename); } save(id, file); }else{// 如果存在上傳記錄,讀取已經上傳的數據長度 file = new File(log.getPath());//從上傳記錄中得到文件的路徑 if(file.exists()){ File logFile = new File(file.getParentFile(), file.getName()+".log"); if(logFile.exists()){ Properties properties = new Properties(); properties.load(new FileInputStream(logFile)); position = Integer.valueOf(properties.getProperty("length"));//讀取已經上傳的數據長度 } } } OutputStream outStream = socket.getOutputStream(); String response = "sourceid="+ id+ ";position="+ position+ "\r\n"; //服務器收到客戶端的請求信息后,給客戶端返回響應信息:sourceid=1274773833264;position=0 //sourceid由服務器端生成,唯一標識上傳的文件,position指示客戶端從文件的什么位置開始上傳 outStream.write(response.getBytes()); RandomAccessFile fileOutStream = new RandomAccessFile(file, "rwd"); if(position==0) fileOutStream.setLength(Integer.valueOf(filelength));//設置文件長度 fileOutStream.seek(position);//指定從文件的特定位置開始寫入數據 byte[] buffer = new byte[1024]; int len = -1; int length = position; while( (len=inStream.read(buffer)) != -1){//從輸入流中讀取數據寫入到文件中 fileOutStream.write(buffer, 0, len); length += len; Properties properties = new Properties(); properties.put("length", String.valueOf(length)); FileOutputStream logFile = new FileOutputStream(new File(file.getParentFile(), file.getName()+".log")); properties.store(logFile, null);//實時記錄已經接收的文件長度 logFile.close(); } if(length==fileOutStream.length()) delete(id); fileOutStream.close(); inStream.close(); outStream.close(); file = null; } } catch (Exception e) { e.printStackTrace(); }finally{ try { if(socket!=null && !socket.isClosed()) socket.close(); } catch (IOException e) {} } } } public FileLog find(Long sourceid){ return datas.get(sourceid); } //保存上傳記錄 public void save(Long id, File saveFile){ //日后可以改成通過數據庫存放 datas.put(id, new FileLog(id, saveFile.getAbsolutePath())); } //當文件上傳完畢,刪除記錄 public void delete(long sourceid){ if(datas.containsKey(sourceid)) datas.remove(sourceid); } private class FileLog{ private Long id; private String path; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public FileLog(Long id, String path) { this.id = id; this.path = path; } } }

服務端界面類:ServerWindow.java

public class ServerWindow extends Frame {private FileServer s = new FileServer(12345);private Label label;public ServerWindow(String title) {super(title);label = new Label();add(label, BorderLayout.PAGE_START);label.setText("服務器已經啟動");this.addWindowListener(new WindowListener() {public void windowOpened(WindowEvent e) {new Thread(new Runnable() {public void run() {try {s.start();} catch (Exception e) {// e.printStackTrace();}}}).start();}public void windowIconified(WindowEvent e) {}public void windowDeiconified(WindowEvent e) {}public void windowDeactivated(WindowEvent e) {}public void windowClosing(WindowEvent e) {s.quit();System.exit(0);}public void windowClosed(WindowEvent e) {}public void windowActivated(WindowEvent e) {}});}/*** @param args*/public static void main(String[] args) throws IOException {InetAddress address = InetAddress.getLocalHost();ServerWindow window = new ServerWindow("文件上傳服務端:" + address.getHostAddress());window.setSize(400, 300);window.setVisible(true);}}

2)客戶端(Android端)

首先是布局文件:activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:padding="5dp"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="文件名"android:textSize="18sp" /><EditText android:id="@+id/edit_fname"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Nikki Jamal - Priceless.mp3" /><Button android:id="@+id/btn_upload"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="上傳" /><Button android:id="@+id/btn_stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="停止" /><ProgressBar android:id="@+id/pgbar"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="fill_parent"android:layout_height="40px" /><TextView android:id="@+id/txt_result"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center" /> </LinearLayout>

因為斷點續傳,我們需要保存上傳的進度,我們需要用到數據庫,這里我們定義一個數據庫
管理類:DBOpenHelper.java:

/*** Created by Jay on 2015/9/17 0017.*/ public class DBOpenHelper extends SQLiteOpenHelper {public DBOpenHelper(Context context) {super(context, "jay.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE IF NOT EXISTS uploadlog (_id integer primary key autoincrement, path varchar(20), sourceid varchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} }

然后是數據庫操作類:UploadHelper.java

/*** Created by Jay on 2015/9/17 0017.*/ public class UploadHelper {private DBOpenHelper dbOpenHelper;public UploadHelper(Context context) {dbOpenHelper = new DBOpenHelper(context);}public String getBindId(File file) {SQLiteDatabase db = dbOpenHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select sourceid from uploadlog where path=?", new String[]{file.getAbsolutePath()});if (cursor.moveToFirst()) {return cursor.getString(0);}return null;}public void save(String sourceid, File file) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("insert into uploadlog(path,sourceid) values(?,?)",new Object[]{file.getAbsolutePath(), sourceid});}public void delete(File file) {SQLiteDatabase db = dbOpenHelper.getWritableDatabase();db.execSQL("delete from uploadlog where path=?", new Object[]{file.getAbsolutePath()});} }

對了,別忘了客戶端也要貼上那個流解析類哦,最后就是我們的MainActivity.java了:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {private EditText edit_fname;private Button btn_upload;private Button btn_stop;private ProgressBar pgbar;private TextView txt_result;private UploadHelper upHelper;private boolean flag = true;private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {pgbar.setProgress(msg.getData().getInt("length"));float num = (float) pgbar.getProgress() / (float) pgbar.getMax();int result = (int) (num * 100);txt_result.setText(result + "%");if (pgbar.getProgress() == pgbar.getMax()) {Toast.makeText(MainActivity.this, "上傳成功", Toast.LENGTH_SHORT).show();}}};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();upHelper = new UploadHelper(this);}private void bindViews() {edit_fname = (EditText) findViewById(R.id.edit_fname);btn_upload = (Button) findViewById(R.id.btn_upload);btn_stop = (Button) findViewById(R.id.btn_stop);pgbar = (ProgressBar) findViewById(R.id.pgbar);txt_result = (TextView) findViewById(R.id.txt_result);btn_upload.setOnClickListener(this);btn_stop.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_upload:String filename = edit_fname.getText().toString();flag = true;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {File file = new File(Environment.getExternalStorageDirectory(), filename);if (file.exists()) {pgbar.setMax((int) file.length());uploadFile(file);} else {Toast.makeText(MainActivity.this, "文件并不存在~", Toast.LENGTH_SHORT).show();}} else {Toast.makeText(MainActivity.this, "SD卡不存在或者不可用", Toast.LENGTH_SHORT).show();}break;case R.id.btn_stop:flag = false;break;}}private void uploadFile(final File file) {new Thread(new Runnable() {public void run() {try {String sourceid = upHelper.getBindId(file);Socket socket = new Socket("172.16.2.54", 12345);OutputStream outStream = socket.getOutputStream();String head = "Content-Length=" + file.length() + ";filename=" + file.getName()+ ";sourceid=" + (sourceid != null ? sourceid : "") + "\r\n";outStream.write(head.getBytes());PushbackInputStream inStream = new PushbackInputStream(socket.getInputStream());String response = StreamTool.readLine(inStream);String[] items = response.split(";");String responseSourceid = items[0].substring(items[0].indexOf("=") + 1);String position = items[1].substring(items[1].indexOf("=") + 1);if (sourceid == null) {//如果是第一次上傳文件,在數據庫中不存在該文件所綁定的資源idupHelper.save(responseSourceid, file);}RandomAccessFile fileOutStream = new RandomAccessFile(file, "r");fileOutStream.seek(Integer.valueOf(position));byte[] buffer = new byte[1024];int len = -1;int length = Integer.valueOf(position);while (flag && (len = fileOutStream.read(buffer)) != -1) {outStream.write(buffer, 0, len);length += len;//累加已經上傳的數據長度Message msg = new Message();msg.getData().putInt("length", length);handler.sendMessage(msg);}if (length == file.length()) upHelper.delete(file);fileOutStream.close();outStream.close();inStream.close();socket.close();} catch (Exception e) {Toast.makeText(MainActivity.this, "上傳異常~", Toast.LENGTH_SHORT).show();}}}).start();}}

對了,還有,記得往AndroidManifest.xml中寫入這些權限哦!

<!-- 在SDCard中創建與刪除文件權限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard寫入數據權限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- 訪問internet權限 --><uses-permission android:name="android.permission.INTERNET"/>

4.代碼下載:

Socket上傳大文件demo


5.本節小結:

本節給大家介紹了基于TCP協議的Socket的另一個實例:使用Socket完成大文件的續傳,
相信大家對Socket的了解更進一步,嗯,下一節再寫一個例子吧,兩個處于同一Wifi
下的手機相互傳遞數據的實例吧!就說這么多,謝謝~

總結

以上是生活随笔為你收集整理的Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品v a免费视频 | 超碰午夜| 97在线影院 | 亚洲欧美一区二区三区孕妇写真 | 欧美日韩免费一区二区三区 | 91九色成人 | 国产精品久久久久久久免费大片 | 五月天丁香视频 | 四虎影视8848dvd | 日韩在线播放欧美字幕 | 亚洲精品高清一区二区三区四区 | 免费国产一区二区 | 精品国产日本 | 天天干天天拍天天操 | 国产.精品.日韩.另类.中文.在线.播放 | 超碰电影在线观看 | 欧美日韩国产综合网 | 日韩一二三 | 国产精品日韩在线观看 | 97在线看 | 久久一区二区三区日韩 | 韩日三级在线 | 国产精品久久久久久久久蜜臀 | 亚洲精品久久久久58 | 国产一区网址 | 最近高清中文字幕在线国语5 | 综合激情伊人 | 久久久久久久久久久福利 | 操操操com| 久久久久久久久综合 | 国产91欧美 | 久久综合桃花 | 中文乱幕日产无线码1区 | 国产成人免费网站 | 又爽又黄又无遮挡网站动态图 | 欧美日韩裸体免费视频 | 成人免费在线播放 | 国产小视频免费在线网址 | 99在线播放 | 91精品办公室少妇高潮对白 | 91传媒免费观看 | 人人澡超碰碰97碰碰碰软件 | 激情综合亚洲 | 国内精自线一二区永久 | 亚洲 欧美 变态 国产 另类 | 夜夜躁日日躁狠狠躁 | 9在线观看免费 | 国产精品午夜av | 91在线操 | 久久99精品国产麻豆宅宅 | 亚洲精品综合一区二区 | 亚洲黄色在线 | 国产精品麻 | 99在线视频免费观看 | 在线观看av网站 | 九九视频免费在线观看 | 色多多视频在线 | 国产精品久久免费看 | 97人人模人人爽人人喊网 | 国产韩国日本高清视频 | 日韩二区三区在线 | 久久久久久久久久久成人 | 久久久精品久久日韩一区综合 | 五月天激情综合 | 亚洲午夜av久久乱码 | 国产精品美女久久久久久 | 制服丝袜一区二区 | 一区二区三区电影 | 免费看国产精品 | 久草在线91 | 伊人色**天天综合婷婷 | 天天天综合网 | 中文字幕一区在线观看视频 | 91天堂素人约啪 | 成人午夜电影在线观看 | 久要激情网| 中文字幕高清视频 | 韩国一区在线 | 97在线观看免费观看高清 | 国产精品美女久久久免费 | 久久久久久久久福利 | 久久久久久久综合色一本 | 日韩经典一区二区三区 | 欧美精品久久人人躁人人爽 | 国产成人精品综合久久久久99 | 在线一区二区三区 | 国产福利在线不卡 | 91精品视频免费看 | 国产一二区视频 | 91免费的视频在线播放 | 欧美午夜精品久久久久久孕妇 | 女人18毛片90分钟 | 久久成人高清 | www.午夜视频 | 97人人艹| 精品黄色片 | 国产成人精品a | av中文字幕第一页 | 黄色成人小视频 | 天天草天天插 | 欧美日韩在线视频免费 | 亚洲乱码国产乱码精品天美传媒 | 国产精品第52页 | 精品一区二区av | 干干日日| 韩国一区视频 | 久久国产一区二区 | 激情六月婷婷久久 | 久久69精品| a视频免费 | 亚洲精品88欧美一区二区 | 成人国产精品一区二区 | 精品国产一二三 | 免费一区在线 | 99热高清| 91九色视频网站 | 天操夜夜操| 久久成熟| 亚洲涩涩网站 | 日本久久中文字幕 | 一区二区视频在线观看免费 | 毛片视频网址 | 黄色电影在线免费观看 | 国产亚洲精品美女 | 欧美精品一区二区免费 | 日韩精品免费在线播放 | 亚洲一级黄色大片 | 中文字幕av全部资源www中文字幕在线观看 | 日韩高清黄色 | 欧美成人xxxx | 国产一级不卡视频 | 91视频3p | 亚洲激情 在线 | 国产偷在线 | 国产精品va在线观看入 | 亚洲爱av| 国内精品久久久久影院日本资源 | 九九热免费精品视频 | 激情综合啪 | 91看片在线 | 欧美日韩国产一区二 | 国产又黄又硬又爽 | 成年免费在线视频 | 中文字幕av最新更新 | 国产精品九九久久久久久久 | 国产剧情一区二区 | 久久久久久久久久久免费视频 | 91丨九色丨蝌蚪丨老版 | 国产一级电影在线 | 中文字幕a∨在线乱码免费看 | 深爱婷婷久久综合 | 国产午夜精品免费一区二区三区视频 | 狠狠色噜噜狠狠狠狠2022 | 三级黄色理论片 | 天天综合色网 | 亚洲精品视频偷拍 | 国产精品黄色影片导航在线观看 | 综合色中色 | 免费日韩精品 | 欧美精品久久久久久久久久 | 精品国产免费看 | 精品国产亚洲日本 | 狠狠狠色 | 国产黄影院色大全免费 | 国产精品不卡视频 | 欧美日韩中文字幕在线视频 | 国产网站在线免费观看 | 欧美aa一级片 | 亚洲免费色 | 欧美一区二区伦理片 | 香蕉久久久久 | 国产69精品久久久久99尤 | 日韩欧美在线影院 | 中文免费在线观看 | 丁香六月av | 久久精品综合视频 | 国产网红在线 | 91片网| 成人一区二区三区在线观看 | 男女激情麻豆 | 久草线| 人人澡人人爱 | 少妇bbbb搡bbbb搡bbbb | 欧美久久久久久 | 久久久久久久久久久免费av | 日韩欧美在线免费观看 | 亚洲视频2 | 97精品久久 | 成人在线观看av | 夜夜操综合网 | 国产亚洲免费观看 | 在线观看中文字幕网站 | 午夜视频久久久 | 永久免费精品视频网站 | av电影免费观看 | 欧美日韩二三区 | 在线观看国产v片 | 成人av免费播放 | 亚洲乱亚洲乱妇 | 欧美巨大 | 1区2区视频 | 久久久久二区 | 日韩免费二区 | 夜夜操综合网 | 中文字幕制服丝袜av久久 | 在线视频欧美亚洲 | 黄色免费观看 | 涩涩网站免费 | 日韩网站在线免费观看 | 色综合久久88色综合天天 | 中文字幕资源在线 | 国产在线观看h | 国产精品久久久久久久av电影 | 天天插夜夜操 | 国产你懂的在线 | 国内视频在线 | 日本超碰在线 | 伊人导航 | 日本电影久久 | 国产精品久久久久久久妇 | av中文字幕亚洲 | 欧美色噜噜 | 超碰公开97| 亚洲色图av | 国产美女免费视频 | 天天综合人人 | 黄色福利网| 91九色丨porny丨丰满6 | 怡红院av久久久久久久 | 操少妇视频 | 国产v在线播放 | 国产人免费人成免费视频 | 国产麻豆剧果冻传媒视频播放量 | 激情婷婷av | 天天操夜操| 国产精品黑丝在线观看 | 久久视频在线免费观看 | 制服丝袜一区二区 | 人人澡av| 国产九九在线 | 一级精品视频在线观看宜春院 | 网站免费黄色 | 久久福利国产 | 国产字幕在线播放 | 国产一区二区久久久 | 天天爽人人爽夜夜爽 | 玖玖玖精品 | 天堂中文在线视频 | 成人毛片一区 | 亚洲女欲精品久久久久久久18 | 日韩在线激情 | 国产在线欧美在线 | 在线免费色视频 | 久久久久综合 | 久久综合偷偷噜噜噜色 | 成人av资源网 | 亚洲一区二区三区毛片 | 69国产盗摄一区二区三区五区 | 麻豆影视在线观看 | 久久久96 | 久久久国际精品 | 国产精品免费人成网站 | ,久久福利影视 | 中文字幕亚洲字幕 | 婷婷色中文字幕 | 久久免费视频播放 | av在线直接看 | av免费看看| 一区二区伦理电影 | 亚洲精品国产精品国自产在线 | 免费国产黄线在线观看视频 | 91中文在线 | 国产成人精品av在线 | 毛片www| 玖玖精品视频 | 特级黄录像视频 | 日韩免费小视频 | 成年人免费电影在线观看 | 91视频在线看 | 久草在线视频网 | 国产中文字幕网 | 一本一道久久a久久精品蜜桃 | 成人动态视频 | 人人讲下载 | 久久婷婷精品 | 91丨九色丨蝌蚪丰满 | 久久免费av电影 | 丁香六月综合网 | 久久蜜臀av | 亚洲 欧美 日韩 综合 | 成人一区二区三区中文字幕 | 一区二区三区电影大全 | 最新日韩在线 | 狠狠躁日日躁狂躁夜夜躁av | 麻豆免费精品视频 | 在线日韩视频 | 一区二区精品在线视频 | 婷婷亚洲综合五月天小说 | 四虎在线影视 | 日韩av视屏在线观看 | 国产亚洲欧美日韩高清 | 日韩午夜在线观看 | 欧美性成人 | 在线看中文字幕 | 成人午夜在线观看 | 黄色免费大全 | 中文视频在线看 | 九九精品久久久 | 久久精品激情 | 人人玩人人添人人 | 一级黄视频| 国产无套精品久久久久久 | 国产96在线 | 久久久久久国产一区二区三区 | 中文字幕欲求不满 | av丝袜制服| 在线亚洲欧美日韩 | 亚洲激精日韩激精欧美精品 | 亚洲艳情 | 久久精品国产99 | 久久久国产99久久国产一 | 免费观看久久 | 精品久久久久一区二区国产 | 欧美日韩不卡一区二区三区 | 中文字幕在线视频一区二区三区 | 91豆花在线观看 | 国产精品久久久久久69 | 最近中文字幕高清字幕免费mv | 97人人模人人爽人人喊网 | 色av色av色av| 97色se| 91视频在线国产 | 成人免费观看电影 | 久久免费一 | 亚洲视频免费在线观看 | 国产日韩欧美在线观看视频 | 黄污视频大全 | 天天干天天干天天射 | 在线久久| 亚洲国产美女精品久久久久∴ | 国产精品久久久久久久久久久久久久 | 免费黄色网址网站 | 国产视频1区2区3区 久久夜视频 | 丁香高清视频在线看看 | 中文字幕首页 | 亚洲黄色小说网址 | 国产精品1区 | 精品国产1区 | 天天色影院 | 亚洲视屏在线播放 | 国产最新在线 | 丁香婷婷电影 | 欧美成人性战久久 | 久热只有精品 | 色综合亚洲精品激情狠狠 | 日本巨乳在线 | 久久成人麻豆午夜电影 | 免费看污的网站 | 欧美性一级观看 | 欧美日本啪啪无遮挡网站 | av免费福利 | 超碰在线亚洲 | 国产原创在线视频 | 亚洲欧美经典 | 狠狠网亚洲精品 | 美女视频免费一区二区 | 日韩欧美视频在线观看免费 | 亚洲精品一区二区三区在线观看 | 精品久久久久久久久久久久久 | 91av资源在线 | 黄色.com| 久久久久免费视频 | 国产视频久 | 亚洲精品男人天堂 | 国产在线第三页 | 成全在线视频免费观看 | 日本狠狠干 | 一区二区三区在线视频111 | 日韩伦理片hd | 黄在线免费看 | 在线观看中文字幕视频 | 久久亚洲人| 国产精品久久久久久久久软件 | 欧美精彩视频 | 午夜精品久久 | 久久 国产一区 | 五月天婷婷狠狠 | 色多多污污 | 国产精品福利无圣光在线一区 | 黄色三级久久 | 欧美精品v国产精品v日韩精品 | 久久毛片视频 | 亚洲最大在线视频 | 国产在线观看免费观看 | 久久99欧美 | 久久久国产一区二区三区四区小说 | 亚洲色图激情文学 | 欧美在线观看小视频 | 国产aa精品 | 亚洲国产播放 | 黄色激情网址 | 国产永久免费观看 | 国产高清日韩欧美 | 日韩国产在线观看 | av免费在线观 | 日韩欧在线| 成人免费xyz网站 | 黄色一级片视频 | 91九色网站 | 欧美成人h版在线观看 | 亚洲精品玖玖玖av在线看 | 久久精品国产一区二区电影 | 日韩av片在线 | 亚洲欧美激情精品一区二区 | 视频国产 | 日日夜夜噜 | 日韩精选在线观看 | 国产日韩精品一区二区 | 久久线视频| 亚洲精品国产品国语在线 | 日韩av一区二区在线播放 | 人人爽人人爽人人 | 国产精品综合av一区二区国产馆 | 国产成人一区三区 | 一区二区不卡 | 欧美性色网站 | 丁香综合激情 | 天堂资源在线观看视频 | 久久久久久麻豆 | 成人免费毛片aaaaaa片 | 精品高清美女精品国产区 | 久久网站最新地址 | 天天操天天操天天操天天操天天操天天操 | 久久久久国产精品一区二区 | 婷婷5月色| 福利视频 | 久久久久免费观看 | 精品视频国产 | 中文字幕一区二 | 久久成人人人人精品欧 | 久久免费视频这里只有精品 | 久久福利小视频 | www.香蕉视频在线观看 | 国产一区视频在线 | 中日韩欧美精彩视频 | 色综合久久88色综合天天人守婷 | 高清av网站 | 亚洲视频综合在线 | 伊人www22综合色 | 日韩av一区二区三区在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产在线综合视频 | 丁香六月婷婷激情 | 精品久久视频 | 天天精品视频 | 国产精品一区二区三区四 | 久草在线久草在线2 | www日韩欧美 | 久久久噜噜噜久久久 | 免费成人av在线看 | 久久一区二区三区四区 | 免费在线视频一区二区 | www.色爱 | 麻豆视频www| 亚洲高清在线精品 | 在线最新av| 国模视频一区二区三区 | 日韩网站在线免费观看 | 亚洲国产精品人久久电影 | 国产黄色av网站 | 国产va精品免费观看 | 中文字幕亚洲欧美日韩2019 | 色在线观看网站 | 国产美女被啪进深处喷白浆视频 | 91精品视频免费看 | 日本在线观看中文字幕无线观看 | 日本一区二区高清不卡 | 久久久久久久久毛片 | 深夜免费福利网站 | 国产高清精 | bbw av| 欧美在线观看视频一区二区三区 | 波多野结衣精品在线 | 日韩精品不卡在线观看 | 精品视频免费久久久看 | 亚洲精品国产综合久久 | 免费av在线播放 | 欧美乱熟臀69xxxxxx | 久久黄色小说视频 | 在线观看视频h | 美女黄频在线观看 | 久久久免费视频播放 | 美女在线观看av | 永久免费观看视频 | 日韩午夜高清 | 一区二区三区精品在线 | 超碰999 | 中文字幕一区二区三区四区视频 | 久久草草热国产精品直播 | 精品在线播放 | 成人理论电影 | 天天摸天天干天天操天天射 | 国产精品一区在线观看 | 国产在线播放一区二区三区 | 久久av伊人 | 人人插人人插 | 96精品视频| 91精品婷婷国产综合久久蝌蚪 | 超碰97人| 久久不见久久见免费影院 | 98超碰在线| 韩日电影在线观看 | 天天综合网 天天综合色 | 9ⅰ精品久久久久久久久中文字幕 | 欧美日韩一区二区三区在线观看视频 | 国产第一页福利影院 | 免费精品视频在线观看 | 久久综合久久综合这里只有精品 | 国产又粗又猛又黄又爽 | 成年在线观看 | 在线观看 国产 | 99热国产在线中文 | 亚洲久草在线 | 色先锋av资源中文字幕 | 国产一线天在线观看 | 免费视频一区二区 | 97国产在线观看 | 在线中文字幕观看 | 久久国产精品免费观看 | 亚洲人精品午夜 | 91精品一区国产高清在线gif | 国产午夜小视频 | 五月天久久婷婷 | 人人超在线公开视频 | www免费| 午夜精品久久久久久久99 | 精品99999 | 一区免费在线 | 久久伊人国产精品 | 美女在线免费观看视频 | 免费在线观看不卡av | 国产福利在线免费 | 国产成人精品av | 久草视频视频在线播放 | 欧美成人一区二区 | 黄av在线| 午夜精品影院 | 一区二区三区精品在线视频 | 欧美一级片在线免费观看 | 99精品视频在线观看视频 | 欧美一区二区精美视频 | 中文字幕久久精品一区 | 国产精品久久久久久久久免费看 | 日韩美女高潮 | 久久久99久久| 午夜精品电影 | 久草网在线视频 | 国产精品毛片一区二区 | 亚洲精品xxxx | 婷婷av网站 | 天天干夜夜 | 国产一级精品绿帽视频 | 极品国产91在线网站 | 99久久www免费 | 97精品国产aⅴ | 欧美做受高潮电影o | 亚洲午夜精品久久久 | 日韩在线观看你懂的 | 男女免费视频观看 | 中文在线字幕免费观 | 国内视频一区二区 | 久久免费看视频 | 国产免费黄色 | 一区二区影院 | 中文字幕电影一区 | 天天射天天操天天干 | www.五月天色| 中文字幕 国产视频 | 丁香花中文在线免费观看 | 久久久久久久国产精品视频 | 美女视频免费精品 | 日本一区二区三区免费观看 | 精品国产乱码一区二区三区在线 | 一区二区三区四区影院 | 国产精品一区一区三区 | 色综合天天天天做夜夜夜夜做 | 天堂在线一区 | 欧美男男激情videos | 久久久一本精品99久久精品 | 亚洲精品黄 | 免费观看久久 | www久久久久 | 四虎在线免费观看视频 | 天天爱天天 | 亚洲精品美女在线 | 操操操干干干 | 日韩精品视频免费看 | 夜夜澡人模人人添人人看 | 久久综合狠狠综合 | 日韩精品久久久久久中文字幕8 | 日本在线观看黄色 | 国产xxxx做受性欧美88 | 天天射综合| 国产精品大片在线观看 | 亚洲黄色在线播放 | 在线观看黄| 99热免费在线 | 亚洲精品国久久99热 | 天天操欧美 | 一区二区三区国产欧美 | 久久免费成人网 | 欧美一级高清片 | 爱情影院aqdy鲁丝片二区 | 美女网站在线 | 国产一线二线三线在线观看 | 91女子私密保健养生少妇 | av视屏在线| 99r国产精品 | 中文字幕av免费观看 | 亚洲精品ww | 成人a毛片 | 亚洲午夜精品久久久久久久久久久久 | av超碰在线| 在线黄色av电影 | 中日韩在线 | www色com| 一区二区三区 亚洲 | 精品国产一区二区三区在线 | 国产精品一区二区三区四区在线观看 | 人人精品久久 | 欧美一区二区在线免费看 | av福利在线看 | 国产福利av| 国产大陆亚洲精品国产 | 国产喷水在线 | 夜色资源站wwwcom | 久久久穴| 综合久久网站 | 免费久久精品视频 | 欧美视频国产视频 | 性色视频在线 | 日韩电影黄色 | 国内精品久久久精品电影院 | 手机av永久免费 | 99成人免费视频 | 涩涩网站在线看 | 伊人精品在线 | 黄色av免费 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久久久久久久久久影院 | 亚洲精品99久久久久久 | 五月激情六月丁香 | 亚州精品天堂中文字幕 | 色视频网站在线观看一=区 a视频免费在线观看 | 午夜在线观看影院 | 久久草| 国产在线播放不卡 | 麻豆91在线播放 | 日韩在线精品视频 | 天天躁天天躁天天躁婷 | 中文字幕 婷婷 | 欧美成人精品三级在线观看播放 | 在线中文字幕av观看 | 亚洲成av人片在线观看 | 97在线精品国自产拍中文 | 一区二区欧美在线观看 | 亚洲精品www. | 日日干,天天干 | 亚洲最新av在线网站 | 久草在线免费色站 | 天堂激情网 | 亚洲免费激情 | 国产视频中文字幕在线观看 | 97精品国自产拍在线观看 | 免费网址在线播放 | 国产成人不卡 | 久久国产精品99国产 | 日韩成人av在线 | 99精品小视频 | 久久国产精品影片 | 天天天天色综合 | 国产又粗又猛又爽又黄的视频免费 | 免费视频二区 | 国产精品久久99综合免费观看尤物 | 久久久96 | 在线成人免费电影 | av天天澡天天爽天天av | 久久这里 | 91精品国自产在线偷拍蜜桃 | 一区二区精| 中文字幕av全部资源www中文字幕在线观看 | 一区中文字幕在线观看 | 亚洲国产午夜视频 | 五月天中文字幕 | 97国产精品一区二区 | 区一区二在线 | 91人人爱 | 亚洲日本精品 | 免费a级毛片在线看 | 免费人成网ww44kk44 | 亚洲国产成人精品电影在线观看 | 97在线观看视频国产 | 国产美女在线精品免费观看 | 免费看污在线观看 | www.888.av| 亚洲播播 | 天天综合日日夜夜 | 午夜av电影院 | 日韩日韩日韩日韩 | 一级欧美黄 | 人人爽人人 | 夜夜操天天操 | 国产91精品久久久久 | 欧美做受高潮 | 免费看的黄网站 | 国产九九九精品视频 | 精品国产诱惑 | 奇米四色影狠狠爱7777 | 久久视频免费在线观看 | wwwww.国产 | japanesexxx乱女另类| 激情网在线观看 | 免费欧美| 国产精品久久久久久爽爽爽 | 亚洲天堂网在线播放 | 中文字幕人成乱码在线观看 | www.97色.com| 日韩中文三级 | 国产999视频 | 亚洲精品高清一区二区三区四区 | 久久久久99精品国产片 | 亚洲精品资源 | 中文字幕在线观看你懂的 | 国产破处精品 | 亚洲精品高清视频在线观看 | 又黄又刺激视频 | 国产专区在线视频 | 国产精品一级在线 | 日韩视频一区二区三区在线播放免费观看 | 丝袜制服综合网 | 精品视频不卡 | 久久免费视频这里只有精品 | 国外调教视频网站 | 免费一级片在线 | 91桃花视频 | 99精品久久99久久久久 | 我要色综合天天 | 国产精品久久久久久a | 久久精品中文字幕一区二区三区 | 三级在线国产 | 韩国av一区二区三区 | 亚洲高清不卡av | 日韩欧美亚州 | 久久黄色影视 | 精品免费国产一区二区三区四区 | 欧美日韩性生活 | 国产成人精品一区二区三区网站观看 | 在线欧美a | 国产高清不卡一区二区三区 | 国产剧在线观看片 | 日韩高清dvd | 在线91播放| www夜夜操com| 狠狠操综合网 | 狠狠色综合欧美激情 | wwwwww色| 国产精品免费观看在线 | 天天插天天干天天操 | 亚洲精品玖玖玖av在线看 | 天堂av在线免费 | 国产在线色 | 免费在线一区二区 | 亚洲专区视频在线观看 | 日本中文不卡 | 四虎影视成人永久免费观看亚洲欧美 | 91在线观看欧美日韩 | 亚洲在线a| 粉嫩高清一区二区三区 | 涩涩网站在线观看 | 欧美大片aaa | 九九热只有精品 | 日韩三级视频在线看 | av韩国在线 | 日狠狠 | 中文字幕 在线看 | 色天天中文 | 九色91福利 | 日本黄色特级片 | 免费网站黄 | 国产又粗又猛又黄视频 | 啪啪免费观看网站 | 5月丁香婷婷综合 | 日韩久久久 | 夜夜爽夜夜操 | 一区免费视频 | 成人黄色在线视频 | 久久久精品 | 日韩欧美视频免费在线观看 | 久久久午夜视频 | 国产黄色片在线免费观看 | 狠狠狠色丁香综合久久天下网 | 一二三四精品 | 久久精品系列 | 中文字幕在线不卡国产视频 | 精品婷婷 | 少妇bbb好爽 | 国产精品麻豆视频 | 91黄色免费看 | 国产91免费看 | 干狠狠| 国产一区二区三区免费观看视频 | 日日操天天操夜夜操 | 欧美日韩国产在线观看 | 国产成人精品在线播放 | 国产伦精品一区二区三区无广告 | 黄色国产高清 | 干天天| 九色精品| av久久久 | 成人免费xxx在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 超碰97公开 | 久久香蕉国产 | 亚洲国产片色 | 高清一区二区 | 久久综合亚洲鲁鲁五月久久 | 精品影院一区二区久久久 | 在线观看色网站 | 天天插日日操 | 亚洲精品动漫成人3d无尽在线 | 亚洲精品一区二区精华 | 中文字幕日韩一区二区三区不卡 | 国产精品爽爽久久久久久蜜臀 | 久久论理 | 午夜精品久久久久久久久久久久久久 | 天天操天天舔天天干 | 欧美日韩国产一区 | 免费毛片aaaaaa | 四虎影视成人永久免费观看视频 | 久久超碰97| 午夜久久福利视频 | 免费在线激情电影 | 天天拍天天操 | 亚洲精品国产精品国 | 成人毛片在线观看视频 | www.天天成人国产电影 | av福利第一导航 | 精品美女在线观看 | 丁香六月五月婷婷 | 国产综合在线观看视频 | 免费看十八岁美女 | 久久久精品二区 | 亚洲最大av | 精品久久一区 | 韩国av在线播放 | 中文字幕专区高清在线观看 | 中文字幕在线观看免费 | 成人国产精品久久久久久亚洲 | 欧美日bb| 麻豆视频在线播放 | 亚洲一区二区黄色 | 91麻豆精品国产午夜天堂 | 九九九热精品 | 国产精品久久久久久久久岛 | 久久手机免费观看 | 四虎在线免费观看视频 | 亚洲一区二区精品3399 | 正在播放五月婷婷狠狠干 | 国产精品久久视频 | 91精品资源 | 丰满少妇在线观看网站 | 久操97| 欧美精品久久久久a | 天天爽人人爽夜夜爽 | 亚洲国产精品电影 | 国产福利a | 超薄丝袜一二三区 | 色在线亚洲 | 中文字幕乱在线伦视频中文字幕乱码在线 | 亚洲精品午夜久久久久久久久久久 | 日韩亚洲欧美中文字幕 | 亚洲精品系列 | 午夜.dj高清免费观看视频 | 亚洲欧美日韩在线一区二区 | 亚洲va欧美va人人爽 | av先锋影音少妇 | 国产亚洲婷婷免费 | 色播99| 在线视频日韩精品 | 欧美va电影 | av成人免费 | 亚洲91视频| 日韩欧美观看 | 色婷婷激情 | 黄色软件在线观看 | av色一区 | 操久久免费视频 | 成人综合婷婷国产精品久久免费 | 精品视频免费看 | 亚洲一区二区三区在线看 | 99视频在线| 高清不卡一区二区在线 | 在线观看视频免费播放 | 欧美一区二区在线免费观看 | 久久久久久久亚洲精品 | 亚洲欧美视频在线 | 九九热免费观看 | 久久99国产一区二区三区 | 国产一区二区三区免费视频 | 日韩精品免费在线观看 | 精品国产精品久久一区免费式 | 在线观看的av | 亚洲欧美精品在线 | 久久久久9999亚洲精品 | 欧美精品久久久久久久 | 成人久久综合 | 国产999精品久久久 免费a网站 | 亚洲精品网站在线 | 日本公妇在线观看高清 | 最近免费中文视频 | 黄视频色网站 | 天天看天天干天天操 | 国产精品久久久亚洲 | 日日干干夜夜 | 成人午夜电影在线播放 | 久久av一区二区三区亚洲 | 国产午夜精品福利视频 | 天天干天天操天天入 | 97超碰精品 | 欧美另类一二三四区 | 中文字幕第一页av | www.黄色片网站 | a级片韩国 | 欧美一区二区精美视频 | 久久综合九色综合97婷婷女人 | 日本xxxxav| 国产人成精品一区二区三 | 九九有精品 | 久久99这里只有精品 | 欧美在一区 | 国产成人一区二区啪在线观看 | 精品自拍sae8—视频 | 婷婷在线五月 | 在线观看黄网站 | 中文字幕a∨在线乱码免费看 | 亚洲热视频 | 91福利免费| 国产色视频123区 | 欧美日韩观看 | 日精品在线观看 | 国产精品18久久久久vr手机版特色 | 精品视频在线免费 | 中文字幕精品久久 | 五月天激情综合网 | 亚洲国产精品久久久久婷婷884 | 欧美片一区二区三区 | 在线观看第一页 | www操操| 中文字幕久久精品亚洲乱码 | 色五月激情五月 | 在线91av| 午夜精品福利在线 | 特级西西人体444是什么意思 | 亚洲欧美日韩在线一区二区 | 中文字幕视频一区二区 | 91九色在线| 免费网站黄色 | 国产高清在线观看 | 黄毛片在线观看 | 五月天久久久久久 | 综合久久久久久久 | 日本三级久久久 | 在线视频观看你懂的 | 色欲综合视频天天天 | 欧美精品xx | 国产精品久久久久久69 | 东方av免费在线观看 | 免费视频a | 婷婷色在线资源 | www.婷婷色| 国产午夜一区 | 日韩av网页 | 国产二级视频 | 亚洲另类久久 | 国产精品igao视频网网址 | 精品国产乱码一区二区三区在线 | 日韩精品在线看 | 国产一级黄色免费看 | 在线观看国产高清视频 | 91亚色在线观看 | 色综合天天天天做夜夜夜夜做 | 综合色在线 | 欧美粗又大 | 久久精品国产一区 | 欧美日韩精 | 日韩免费在线一区 | 国产又粗又猛又爽又黄的视频免费 | 日韩免费视频观看 |