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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信

發(fā)布時(shí)間:2023/12/20 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://blog.csdn.net/whuancai/article/details/11994341

如何在Windows環(huán)境下的VS中安裝使用Google Protobuf完成SOCKET通信

原文出自:http://blog.csdn.net/monkey_d_meng/article/details/5894910

尊重作者:MONKEY_D_MENG


?

最近一段時(shí)間,由于項(xiàng)目的需要,接觸到了Protobuf這個(gè)東東,在Linux環(huán)境下,體驗(yàn)了一把,感覺挺不錯(cuò),很方便,且高效。是一個(gè)非常值得學(xué)習(xí)掌握和應(yīng)用的數(shù)據(jù)抽象、平臺(tái)無關(guān)、功能強(qiáng)大、…(此處省略1000字)的開源工具。

Google雖然把Protobuf做成了跨平臺(tái)、跨語言,但作為微軟的死對(duì)頭,它在readme.txt文件的第一句話就表明了態(tài)度:為了考慮部分MSVC的用戶,Protobuf提供了針對(duì)VS的安裝說明,但Protobuf最好用于Unix環(huán)境下。

在上一篇博客中,我介紹了如何在Linux環(huán)境下安裝Protobuf,現(xiàn)在讓我們了解一下Windows環(huán)境下,如何在VS中使用Protobuf,注意是VS,在VC6的環(huán)境下,我搞弄了一個(gè)晚上都沒成功,所以推薦VS2005或者以上版本:

?

1.下載protobuff,我下的是2.3.0版本

最新的protobuf可以到Google Code上下載:http://code.google.com/p/protobuf/downloads/list

當(dāng)前版本為2.3.0,下載兩個(gè)壓縮包:protoc-2.3.0-win32.zip和protobuf-2.3.0.zip,前者是protobuf的編譯器,后者包含了有三程序語言的開發(fā)包。

?

2.解壓

首先解壓protoc-2.3.0-win32.zip,把protoc.exe文件放到path路徑中,最簡單的做法就是把這個(gè)文件拷貝到C:/WINDOWS目錄下。

解壓protobuf-2.3.0.zip文件,將文件加壓到C盤根目錄,主文件位于C:/protobuf-2.3.0/protobuf-2.3.0目錄下。

?

3.安裝操作

(1)使用VS2005編譯proto,VS工程目錄位于vsprojects目錄中,工程名字為“protobuf.sln”。

?

(2)選擇“生成”à“生成解決方案”選項(xiàng)進(jìn)行編譯,編譯過程中可能會(huì)由于編譯的順序報(bào)錯(cuò)誤,可以使用手工逐個(gè)順序編譯生成,可能會(huì)比較順利。按照下圖的順序,右鍵“重新生成”,逐個(gè)編譯。但是我在實(shí)習(xí)操作過程中,libprotobuf-lite工程重來都沒有成功編譯通過過。淡定先,這個(gè)不會(huì)影響大局的。

?


(3)編譯完成會(huì)在目錄vsprojects下的Debug目錄中生成lib和exe文件。

生成清單如下:

exe文件:

2010-04-15??09:51?????????950,272 lite-test.exe

2010-04-15??09:50?????????3,219,456 protoc.exe

2010-04-15??09:48?????????9,228,288 tests.exe

2010-04-15??09:56?????????2,519,040 test_plugin.exe

?

lib文件:

2010-04-15??09:50????????2,685,922 libprotobuf-lite.lib

2010-04-15??09:56????????24,100,794 libprotobuf.lib

2010-04-15??09:56????????17,302,068 libprotoc.lib

其實(shí)我在測試過程中,lite-test.exe和libprotobuf-lite.lib并沒有生成,因?yàn)榫幾g錯(cuò)誤了,但這并不影響大局,淡定先。

?

(4)OK,至此,我們已經(jīng)完成了編譯工作,下面需要進(jìn)行的是protobuf的測試。我們需要使用到之前VS編譯出來的libprotobuf.lib和libprotoc.lib完成一個(gè)C/S結(jié)構(gòu)的SOCKET通信測試。

?

àProtobuf的測試

在VS2005下,創(chuàng)建兩個(gè)新的工程,分別命名為server和client,每個(gè)工程都需要引用protobuf的頭文件和lib文件。

一、添加protobuf頭文件操作:右擊項(xiàng)目à屬性à配置屬性àC/C++à常規(guī)?(也命令行可在中添加)。具體路徑:C:/protobuf-2.3.0/protobuf-2.3.0/src

二、添加protobuf的lib文件操作:右擊項(xiàng)目à屬性à配置屬性à鏈接器à常規(guī)(也可在命令行中添加)。具體路徑:C:/protobuf-2.3.0/protobuf-2.3.0/vsprojects/Debug

三、CMD窗口下編譯生成頭文件:

C:/protobuf-2.3.0/protobuf-2.3.0/examples>protoc -I=./ --cpp_out=./ people.proto

將proto文件生成的文件放到當(dāng)前目錄。

我們得到了兩個(gè)文件生:people.pb.h和people.pb.cc

?

people.proto文件內(nèi)容如下:

[cpp]?view plaincopy
  • package?CPFS;?????
  • message?People??
  • {?????
  • ??required?string?name?=?1;?????
  • ??required?int32?id?=?2;?????
  • ??required?string?email?=?3;?????
  • }??
  • ?

    ?

    四、server和client端源代碼:

    server端源代碼:

    [cpp]?view plaincopy
  • #include?"common/op_socket.h"??
  • #include?"people.pb.h"??
  • #pragma?comment(lib,?"libprotobuf.lib")??
  • #pragma?comment(lib,?"libprotoc.lib")??
  • using?namespace?std;??
  • int?main()?????
  • {?????
  • ????GOOGLE_PROTOBUF_VERIFY_VERSION;??
  • ????OP_SOCKET?server_sockfd;??
  • ????OP_SOCKET?new_server_sockfd;??
  • ????OP_SOCKADDR_IN?server_addr;??
  • ????OP_SOCKADDR_IN?client_addr;??
  • ????OP_SOCKLEN_T?sin_size;??
  • ????char?buffer[BUFFER_SIZE?+?1];??
  • ????int?bytes;??
  • ????string?str;??
  • ????string?data;??
  • ????CPFS::People?p;??
  • #ifdef?WIN32??
  • ????WSADATA??Ws;??
  • ????//Init?Windows?Socket??
  • ????if?(WSAStartup(MAKEWORD(2,2),?&Ws)?!=?0)??
  • ????{??
  • ????????fprintf(stderr,?"Init?Windows?Socket?Failed::%s",?GetLastError());??
  • ????????return?EXIT_FAILURE;??
  • ????}??
  • #endif??
  • ????server_sockfd?=?op_socket(AF_INET,?SOCK_STREAM,?0);???
  • ????op_set_sockaddr_in(server_addr,?AF_INET,?htons(INADDR_ANY),?htons(OP_PORT));??
  • ????op_bind(server_sockfd,?(struct?sockaddr?*)&server_addr,?sizeof(struct?sockaddr));?????
  • ????op_listen(server_sockfd,?LISTEN_QUEUE);?????
  • ????
  • ????while(1)??
  • ????{?????
  • ????????sin_size?=?sizeof(struct?sockaddr_in);??
  • ????????new_server_sockfd?=?op_accept(server_sockfd,?(struct?sockaddr?*)&client_addr,?&sin_size);??
  • ????
  • ????????bytes?=?op_recv(new_server_sockfd,?buffer,?BUFFER_SIZE,?0);??
  • ????????buffer[bytes]?=?'/0';??
  • ????????str?=?buffer;??
  • ????????cout?<<?"You?got?a?message?from?"?<<?inet_ntoa(client_addr.sin_addr)?<<?endl;??
  • ????????cout?<<?"client_addr?Message:?"?<<?str?<<?endl;??
  • ????????if(str?==?"get")??
  • ????????{??
  • ????????????p.set_id(1);??
  • ????????????????p.set_name("monkey");??
  • ????????????????p.set_email("mokeydong@gmail.com");??
  • ????????????????p.SerializeToString(&data);??
  • ????????????char?dst[BUFFER_SIZE];??
  • ????????????strcpy(dst,?data.c_str());??
  • ????????????????op_send(new_server_sockfd,?dst,?sizeof(dst),?0);??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????op_send(new_server_sockfd,?"Fucking?client_addr!/n",?16,?0);??
  • ????????}??
  • ????????op_close(new_server_sockfd);??
  • ????}?????
  • ????op_close(server_sockfd);??
  • ????google::protobuf::ShutdownProtobufLibrary();??
  • ????getchar();??
  • #ifdef?WIN32??
  • ????WSACleanup();??
  • #endif??
  • ????return?EXIT_SUCCESS;??
  • }??
  • client源代碼:

    ?

    [cpp]?view plaincopy
  • #include?"common/op_socket.h"??
  • #include?"people.pb.h"??
  • #pragma?comment(lib,?"libprotobuf.lib")??
  • #pragma?comment(lib,?"libprotoc.lib")??
  • using?namespace?std;??
  • int?main(int?argc,?char?**argv)?????
  • {??
  • ????GOOGLE_PROTOBUF_VERIFY_VERSION;??
  • ????OP_SOCKET?client_sockfd;??
  • ????OP_SOCKADDR_IN?server_addr;??
  • ????OP_SOCKADDR_IN?client_addr;??
  • ????char?buffer[BUFFER_SIZE?+?1];??
  • ????int?bytes;??
  • ????CPFS::People?p;??
  • ????if?(argc?!=?2)??
  • ????{??
  • ????????printf("Usage:?%s?/"COMMAND/"/n",argv[0]);??
  • ????????exit(0);??
  • ????}??
  • #ifdef?WIN32??
  • ????WSADATA??Ws;??
  • ????//Init?Windows?Socket??
  • ????if?(WSAStartup(MAKEWORD(2,2),?&Ws)?!=?0)??
  • ????{??
  • ????????fprintf(stderr,?"Init?Windows?Socket?Failed::%s",?GetLastError());??
  • ????????return?EXIT_FAILURE;??
  • ????}??
  • #endif??
  • ????client_sockfd?=?op_socket(AF_INET,?SOCK_STREAM,?0);??
  • ????op_set_sockaddr_in(server_addr,?AF_INET,?op_inet_addr(DEFAULT_SERVER_IP),?htons(OP_PORT));??
  • ????op_connect(client_sockfd,?(struct?sockaddr?*)&server_addr,?sizeof(struct?sockaddr));??
  • ????op_send(client_sockfd,?argv[1],?20,?0);??
  • ????bytes?=?op_recv(client_sockfd,?buffer,?BUFFER_SIZE,?0);??
  • ????buffer[bytes]?=?'/0';??
  • ????string?data?=?buffer;??
  • ????p.ParseFromString(data);??
  • ????cout?<<?"Name:?"?<<?p.name()?<<?endl;??
  • ????cout?<<?"ID:?"?<<?p.id()?<<?endl;??
  • ????cout?<<?"Email:?"?<<?p.email()?<<?endl;??
  • ????op_close(client_sockfd);??
  • #ifdef?WIN32??
  • ????WSACleanup();??
  • #endif??
  • ????google::protobuf::ShutdownProtobufLibrary();??
  • ????return?EXIT_SUCCESS;??
  • }??
  • 五、因?yàn)樯鲜鰞蓚€(gè)代碼用到了我寫了一個(gè)初級(jí)版本的SOCKET跨平臺(tái)的庫,這里貼出來,很齪,但還可以用,小弟也才開始寫socket程序。這個(gè)庫文件要放到common/目錄下面。

    op_socket.h源代碼:

    ?

    [cpp]?view plaincopy
  • #ifndef?OP_SOCKET_H_??
  • #define?OP_SOCKET_H_??
  • #include?<stdio.h>??
  • #include?<errno.h>??
  • #include?<string.h>??
  • #include?<stdlib.h>??
  • #include?<iostream>??
  • #include?<string>??
  • #ifndef?WIN32??
  • ????#include?<sys/types.h>??
  • ????#include?<sys/wait.h>??
  • ????#include?<sys/socket.h>??
  • ????#include?<arpa/inet.h>??
  • ????#include?<netinet/in.h>??
  • ????#include?<signal.h>??
  • ????#include?<netdb.h>??
  • ????#include?<unistd.h>??
  • ????#include?<fcntl.h>??
  • #else??
  • ????#include?<winsock2.h>??
  • ????#pragma?comment(lib,?"ws2_32.lib")??
  • #endif??
  • //?Linux??
  • #ifndef?WIN32??
  • ????#define?OP_SOCKET???????????????int??
  • ????#define?OP_SOCKADDR_IN??????????struct?sockaddr_in??
  • ????#define?OP_SOCKADDR?????????????struct?sockaddr??
  • ????#define?OP_SOCKLEN_T????????????socklen_t??
  • //?Windows??
  • #else??
  • ????#define?OP_SOCKET???????????????SOCKET??
  • ????#define?OP_SOCKADDR_IN??????????SOCKADDR_IN??
  • ????#define?OP_SOCKADDR?????????????SOCKADDR??
  • ????#define?OP_SOCKLEN_T????????????int?FAR??
  • #endif??
  • #define?OP_PORT?????????????????????8888??
  • #define?BUFFER_SIZE?????????????????1024??
  • #define?LISTEN_QUEUE????????????????20??
  • #define?MD5_SIZE????????????????????32??
  • #define?FILE_PATH_MAX_SIZE??????????512??
  • #define?FILE_NAME_MAX_SIZE??????????260??
  • #define?FILE_FULL_NAME_MAX_SIZE?????1024??
  • #define?HOST????????????????????????"localhost"??
  • #define?DEFAULT_SERVER_IP???????????"127.0.0.1"??
  • #ifndef?WIN32??
  • ????#define?CLI_FILE_PATH???????????"/tmp/data/client/"?//?客戶端存儲(chǔ)文件的初始化路徑??
  • ????#define?SERV_FILE_PATH??????????"/tmp/data/server/"?//?服務(wù)器端存儲(chǔ)文件的初始化路徑??
  • #else??
  • ????#define?CLI_FILE_PATH???????????"D://download//"????//?客戶端存儲(chǔ)文件的初始化路徑??
  • ????#define?SERV_FILE_PATH??????????"D://data//"????????//?客戶端存儲(chǔ)文件的初始化路徑??
  • #endif??
  • //?把一段內(nèi)存區(qū)的內(nèi)容全部設(shè)置為??
  • void?op_clean_buffer(void?*buffer,?int?len);??
  • //?設(shè)置sockaddr_in,?internet協(xié)議族,?INADDR_ANY表示自動(dòng)獲取本機(jī)地址??
  • void?op_set_sockaddr_in(OP_SOCKADDR_IN?&addr,?short?op_sin_family,?unsigned?long?op_s_addr,?unsigned?short?op_sin_port);??
  • //?創(chuàng)建用于internet的流協(xié)議(TCP)socket,?用server_socket代表服務(wù)器socket??
  • int?op_socket(int?domain,?int?type,?int?protocol);??
  • //?接受一個(gè)到server_socket代表的socket的一個(gè)連接??
  • //?如果沒有連接請(qǐng)求,就等待到有連接請(qǐng)求--這是accept函數(shù)的特性??
  • //?accept函數(shù)返回一個(gè)新的socket,?這個(gè)socket(new_server_socket)用于同連接到的客戶的通信??
  • //?new_server_socket代表了服務(wù)器和客戶端之間的一個(gè)通信通道??
  • //?accept函數(shù)把連接到的客戶端信息填寫到客戶端的socket地址結(jié)構(gòu)client_addr中??
  • int?op_accept(OP_SOCKET?sockfd,?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?*addrlen);??
  • //?IP的點(diǎn)分十記轉(zhuǎn)化為IP的結(jié)構(gòu)體??
  • unsigned?long?op_inet_addr(const?char?*dst);??
  • //?向服務(wù)器發(fā)起連接,連接成功后client_socket代表了客戶機(jī)和服務(wù)器的一個(gè)socket連接??
  • int?op_connect(OP_SOCKET?sockfd,?const?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?addrlen);??
  • //?addr指定的地址分配給與文件描述符socket關(guān)聯(lián)的未命名套接字??
  • int?op_bind(OP_SOCKET?sockfd,?const?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?addrlen);??
  • //?監(jiān)聽client請(qǐng)求,backlog指定最大連接數(shù)??
  • int?op_listen(OP_SOCKET?sockfd,?int?backlog);??
  • //?send發(fā)送消息??
  • int?op_send(OP_SOCKET?sockfd,?const?char?*buffer,?size_t?len,?int?flags);??
  • //?recv接收消息??
  • int?op_recv(OP_SOCKET?sockfd,?char?*buffer,?size_t?len,?int?flags);??
  • //?關(guān)閉socket或文件指針??
  • FILE*?op_fopen(const?char?*path,?const?char?*mode);??
  • //?打開文件??
  • int?op_close(OP_SOCKET?sockfd);??
  • //?關(guān)閉文件指針??
  • int?op_fclose(FILE?*stream);??
  • //?休眠函數(shù)??
  • void?op_sleep(int?micro_seconds);??
  • //?字符串比較函數(shù)??
  • int?op_stricmp(char?*s1,char?*?s2);??
  • #endif??
  • op_socket.cpp源文件代碼:

    ?

    [cpp]?view plaincopy
  • #include?"op_socket.h"??
  • //?把一段內(nèi)存區(qū)的內(nèi)容全部設(shè)置為??
  • void?op_clean_buffer(void?*buffer,?int?len)??
  • {??
  • #ifndef?WIN32??
  • ????bzero(buffer,?len);??
  • #else??
  • ????memset(buffer,?0,?len);??
  • #endif??
  • }??
  • //?設(shè)置sockaddr_in??
  • void?op_set_sockaddr_in(OP_SOCKADDR_IN?&addr,?short?op_sin_family,?unsigned?long?op_s_addr,?unsigned?short?op_sin_port)??
  • {??
  • ????op_clean_buffer(&addr,?sizeof(addr));??
  • ????addr.sin_family?=?op_sin_family;??
  • ????addr.sin_addr.s_addr?=?op_s_addr;??
  • ????addr.sin_port?=?op_sin_port;??
  • }??
  • //?創(chuàng)建socket??
  • int?op_socket(int?domain,?int?type,?int?protocol)??
  • {??
  • ????int?sockfd;??
  • #ifndef?WIN32??
  • ????if?((sockfd?=?socket(domain,?type,?protocol))?<?0)??
  • #else??
  • ????if?((sockfd?=?socket(domain,?type,?protocol))?==?INVALID_SOCKET)??
  • #endif??
  • ????{??
  • ????????fprintf(stderr,?"op_socket?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?sockfd;??
  • }??
  • //?接收客戶端的socket請(qǐng)求??
  • int?op_accept(OP_SOCKET?sockfd,?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?*addrlen)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?accept(sockfd,?addr,?addrlen))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_accept?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?IP的點(diǎn)分十記轉(zhuǎn)化為IP的結(jié)構(gòu)體??
  • unsigned?long?op_inet_addr(const?char?*dst)??
  • {??
  • ????long?ret;??
  • ????if?((ret?=?inet_addr(dst))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_inet_addr?error?for?%s/n",?dst);??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?(unsigned?long)ret;??
  • }??
  • //?sockfd指定的套接字連接到addr指定的服務(wù)器套接字??
  • int?op_connect(OP_SOCKET?sockfd,?const?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?addrlen)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?connect(sockfd,?addr,?addrlen))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_connect?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?addr指定的地址分配給與文件描述符socket關(guān)聯(lián)的未命名套接字??
  • int?op_bind(OP_SOCKET?sockfd,?const?OP_SOCKADDR?*addr,?OP_SOCKLEN_T?addrlen)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?bind(sockfd,?addr,?addrlen))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_bind?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?監(jiān)聽client請(qǐng)求,backlog指定最大連接數(shù)??
  • int?op_listen(OP_SOCKET?sockfd,?int?backlog)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?listen(sockfd,?backlog))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_listen?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?send發(fā)送消息??
  • int?op_send(OP_SOCKET?sockfd,?const?char?*buffer,?size_t?len,?int?flags)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?send(sockfd,?buffer,?len,?flags))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_send?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?recv接收消息??
  • int?op_recv(OP_SOCKET?sockfd,?char?*buffer,?size_t?len,?int?flags)??
  • {??
  • ????size_t?ret;??
  • ????op_clean_buffer(buffer,?len);??
  • ????if?((ret?=?recv(sockfd,?buffer,?len,?flags))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_recv?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?關(guān)閉socket或文件指針??
  • int?op_close(OP_SOCKET?sockfd)??
  • {??
  • ????int?ret;??
  • #ifndef?WIN32??
  • ????if?((ret?=?close(sockfd))?<?0)??
  • #else??
  • ????if((ret?=?closesocket(sockfd))?<?0)??
  • #endif??
  • ????{??
  • ????????fprintf(stderr,?"op_close?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?打開文件??
  • FILE*?op_fopen(const?char?*path,?const?char?*mode)??
  • {??
  • ????FILE?*fp?=?fopen(path,?mode);??
  • ????if?(NULL?==?fp)??
  • ????{??
  • ????????printf("File:/t%s?Can?Not?Open?To?Write/n",?path);??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?fp;??
  • }??
  • //?關(guān)閉文件指針??
  • int?op_fclose(FILE?*stream)??
  • {??
  • ????int?ret;??
  • ????if?((ret?=?fclose(stream))?<?0)??
  • ????{??
  • ????????fprintf(stderr,?"op_fclose?error/n");??
  • ????????exit(EXIT_FAILURE);??
  • ????}??
  • ????return?ret;??
  • }??
  • //?休眠函數(shù),對(duì)于usleep為微秒級(jí)別,對(duì)于Sleep為毫秒級(jí)別??
  • void?op_sleep(int?micro_seconds)??
  • {??
  • #ifndef?WIN32??
  • ????usleep(micro_seconds);??
  • #else??
  • ????Sleep(micro_seconds);??
  • #endif??
  • }??
  • //?字符串比較函數(shù)??
  • int?op_stricmp(char?*s1,char?*?s2)??
  • {??
  • #ifndef?WIN32??
  • ????return?strcasecmp(s1,?s2);??
  • #else??
  • ????return?stricmp(s1,?s2);??
  • #endif??
  • }??
  • 六、完成了上述的操作之后,就可以分別對(duì)client和server端進(jìn)行編譯了,先啟動(dòng)server端服務(wù)器,然后用命令行的形式運(yùn)行client端,就可以成功了吧。哈哈!我們來看一下使用protobuf進(jìn)行socket通信的實(shí)際效果!給大家截個(gè)圖!

    ?

    ?

    ?

    最近項(xiàng)目緊,沒空時(shí)間來好好寫博客,只能粗略記錄一下,等實(shí)習(xí)結(jié)束后,要把這段時(shí)間的所學(xué)所感好好總結(jié)下來。

    順便說一下,op_socket這個(gè)SOCKET是跨平臺(tái)的,寫個(gè)makefile可以直接在UNIX環(huán)境下運(yùn)行的,咳咳,寫的太齪了大家見笑了。。。


    總結(jié)

    以上是生活随笔為你收集整理的如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    日本精品午夜 | 色婷婷激情电影 | 国产淫片| 国产福利在线免费观看 | 91在线一区| 日韩中文字幕亚洲一区二区va在线 | 91精品国产福利 | 国产最新精品视频 | 久草在线资源观看 | 天天躁日日躁狠狠躁av中文 | 五月天天色 | 国产精品99久久久久久宅男 | 精品在线免费观看 | 狠狠干 狠狠操 | 日韩美在线观看 | 精品久操 | 国产原创在线观看 | 久久99精品久久久久蜜臀 | av观看免费在线 | 99视频精品全部免费 在线 | 正在播放亚洲精品 | 日本视频精品 | 91精品国产亚洲 | 成人在线观看免费视频 | 综合久久久久 | 国产免费观看高清完整版 | 少妇bbb搡bbbb搡bbbb′ | 精品国产伦一区二区三区观看体验 | 亚洲精品字幕 | 97在线观看视频国产 | 国产成人免费在线 | 欧美最新大片在线看 | 婷婷丁香在线观看 | 国产高清在线观看av | 国产亚洲视频在线 | 黄色a级片在线观看 | 国产精品免费一区二区三区在线观看 | 日韩精品最新在线观看 | 欧美一级片免费 | 国内精品久久久久国产 | 国产精品久久综合 | 欧美性精品| 久久久www成人免费精品张筱雨 | 狠狠色伊人亚洲综合网站色 | 啪啪肉肉污av国网站 | 一级一级一片免费 | 国产高清在线观看 | 国产在线播放一区二区三区 | avav片| 免费涩涩网站 | 国产精品1区2区 | 成人在线视频免费观看 | 一级成人免费 | 狠狠干激情 | 美女啪啪图片 | 免费a一级 | 国产精品不卡av | 免费成人在线观看 | 亚洲成av人影片在线观看 | 成人免费 在线播放 | 91视频免费国产 | 国产在线v | 精品美女在线视频 | 成年人在线 | 成人小视频在线 | 国产精品一区二区电影 | 亚洲国产黄色片 | 久久午夜精品视频 | 人人舔人人爱 | a天堂免费 | 夜夜高潮夜夜爽国产伦精品 | 国产麻豆果冻传媒在线观看 | 粉嫩av一区二区三区四区五区 | 久草视频国产 | 国产精品小视频网站 | www成人av| 最新中文字幕视频 | 日韩精品一区二区三区电影 | 69xx视频| 日韩69视频| 99精品视频免费 | 免费无遮挡动漫网站 | 永久免费精品视频网站 | www.夜夜操 | 在线电影a | 爱色婷婷 | 天天综合中文 | 丁香花在线观看免费完整版视频 | 天天激情| 亚洲午夜精品福利 | 免费精品人在线二线三线 | 午夜视频在线观看欧美 | 亚洲精品视频网址 | 免费观看性生交 | 深夜福利视频在线观看 | 亚洲精品一区二区久 | 久久久午夜剧场 | 久久久久成人精品 | 久久综合久久综合久久综合 | 97视频免费在线观看 | 狠狠干夜夜爱 | 一级片免费观看视频 | 色国产在线 | 国产视频一区二区在线播放 | 搡bbbb搡bbb视频 | 成人av网站在线播放 | 手机在线视频福利 | 黄色毛片视频免费观看中文 | 激情综合五月天 | 国产一级二级在线播放 | 中文字幕首页 | 成年人在线电影 | 久久精品国产99国产 | 亚洲h色精品 | 国产精品第三页 | 亚洲精品五月 | www.在线观看视频 | 最近中文字幕免费 | 欧美极度另类 | a成人在线| 99国产免费网址 | 中文字幕在线影院 | 日韩视频免费 | 超碰人人草人人 | 在线高清| 国产精品24小时在线观看 | 国产精品1000 | 丁香久久五月 | 中文在线免费看视频 | 天堂av免费看 | 日韩美一区二区三区 | 亚洲国产小视频在线观看 | 九九九热精品免费视频观看网站 | 亚洲天堂网在线观看视频 | 日韩高清二区 | 99久久精品久久久久久清纯 | 日韩精品一区二区三区三炮视频 | 在线视频 一区二区 | 成人免费在线播放视频 | 国产高清精品在线 | 欧美久久久久久久久久久久 | 亚洲一级久久 | 色综合五月 | 日韩欧美视频在线免费观看 | 在线亚洲天堂网 | www.午夜色.com | 特级黄色视频毛片 | 天天操夜夜摸 | av黄色国产| 欧美性黑人| 国产精品中文久久久久久久 | 中文字幕在线观看亚洲 | www.伊人色.com | 欧美aa一级片 | 日本大尺码专区mv | 人人澡人人舔 | 青青河边草免费观看 | 97电院网手机版 | 在线国产激情视频 | 国产精品一区电影 | 国产麻豆电影在线观看 | 中文字幕一区二区三 | 欧美日韩18| 久久午夜羞羞影院 | 又爽又黄在线观看 | 欧美午夜久久 | 亚洲欧美日韩一二三区 | 在线天堂视频 | 亚洲成免费| 国产精品18久久久久久久 | 欧美精品在线观看免费 | 久久久官网 | 欧美日韩国产免费视频 | www.97色.com| 日本乱码在线 | 天天干婷婷 | 日韩精品久久久久久久电影竹菊 | 毛片在线网 | 欧美一二三区在线观看 | 黄色一区二区在线观看 | 91视频 - x99av| 99久热在线精品视频 | 日韩一区二区三区免费电影 | 中文字幕日韩免费视频 | 中文字幕在线播出 | 成人性生交视频 | 日韩中文字幕在线观看 | 国产精品日韩欧美一区二区 | 亚洲男人天堂2018 | 久久免费黄色 | 美女黄网站视频免费 | 免费看国产黄色 | 亚洲在线网址 | 在线看国产精品 | 日韩精品一区在线播放 | 成年人免费在线观看网站 | 在线免费观看黄色av | 成人欧美一区二区三区黑人麻豆 | 成人免费在线看片 | 久久久久久久久久影视 | 亚洲免费在线观看视频 | 成人h在线播放 | 免费a网址| 精品在线99| 91片黄在线观看动漫 | 91色影院 | 国产精品99久久久久久大便 | 国产二区视频在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | www色网站| 亚州欧美精品 | 国产一区二区视频在线播放 | 精品国产一区二区久久 | 一区二区不卡视频在线观看 | 在线视频婷婷 | 国产a国产 | 黄色免费看片网站 | 国产一级特黄毛片在线毛片 | 日韩视频专区 | 久久9精品 | av中文字幕在线免费观看 | 久久久精品国产一区二区电影四季 | 国产午夜视频在线观看 | 国产123区在线观看 国产精品麻豆91 | 日本三级香港三级人妇99 | 视频一区二区在线 | 我要看黄色一级片 | 狠狠综合 | h网站免费在线观看 | 精一区二区 | 草久在线观看 | 手机版av在线 | 中国一 片免费观看 | 亚洲在线视频播放 | 日韩视频在线观看视频 | 日韩电影一区二区在线观看 | 日韩一区在线播放 | 久草资源在线观看 | 久久精品中文字幕一区二区三区 | 国产精品久久久久aaaa九色 | 亚洲爱爱视频 | 狠狠狠狠干 | 日韩黄色在线电影 | 久久精品1区 | 99精品国产亚洲 | 在线观看国产中文字幕 | 四虎影视www | 99精品视频免费看 | 国产专区视频 | 亚洲首页 | 成人av在线播放网站 | 中文字幕黄色网址 | 黄色在线观看污 | 黄在线 | 超碰激情在线 | 国产精品久久久久av | 国产精品正在播放 | 日韩成片| 成人午夜网址 | 日韩专区一区二区 | 免费精品国产va自在自线 | 啪啪小视频网站 | 中文在线免费观看 | 成人免费一区二区三区在线观看 | 不卡视频国产 | 日本视频不卡 | 中文字幕中文字幕在线中文字幕三区 | 亚洲国产视频直播 | 国产精品高清在线观看 | 亚洲最大的av网站 | 三级视频国产 | 日韩免费电影网站 | 欧美一区二区三区在线视频观看 | 一区二区三区手机在线观看 | 欧美久久久久久久久久 | 97视频网站 | 人人爱在线视频 | 国产精品视频区 | 在线最新av| 99久久久国产精品 | 深爱开心激情 | 视频三区 | 日韩久久久 | 国产91免费在线 | 操操操com| 91成人国产 | av视屏在线播放 | 久久综合狠狠 | 欧美午夜视频在线 | 亚洲乱码久久久 | 国产精品xxxx18a99 | 一区二区三区四区不卡 | 日韩一区二区三免费高清在线观看 | 久久久综合九色合综国产精品 | 欧美日韩一级在线 | 99精品偷拍视频一区二区三区 | 成人动漫一区二区三区 | 全久久久久久久久久久电影 | 97在线免费观看 | 五月色婷 | 人人玩人人添人人澡超碰 | 婷婷在线视频 | 中文字幕在 | 91久久人澡人人添人人爽欧美 | 欧美日韩另类在线 | 激情开心网站 | 国产精品一区二区久久精品爱微奶 | 激情久久综合网 | 亚洲a资源| 国产精品久久久久四虎 | av网站手机在线观看 | 色综合久久久久久久 | 国产91精品一区二区麻豆亚洲 | 91色在线观看 | 国产精品网站一区二区三区 | 婷婷久久五月天 | 精品国产综合区久久久久久 | 奇米影视8888在线观看大全免费 | 午夜精品视频一区 | 久久精品一区二区三区国产主播 | 五月婷婷激情五月 | 国产精品一区二区免费看 | 免费麻豆网站 | 99久久婷婷国产综合亚洲 | 999日韩 | 91av在线免费播放 | av电影一区二区三区 | 亚洲免费av在线播放 | 国产成人三级在线播放 | 91在线视频免费91 | 免费网站观看www在线观看 | 成人免费一级 | 九九久久影视 | 久久国产精品一区二区三区四区 | 香蕉视频在线播放 | 免费网站在线观看人 | 日日操日日插 | 五月婷婷一区 | 亚洲精品乱码久久久久久按摩 | av在线免费在线 | 999热视频| 亚洲人成人天堂h久久 | 人人爽人人爽人人片av | 99日韩精品 | 成人一级免费视频 | 中文字幕免费看 | 日韩在线一二三区 | 国产 一区二区三区 在线 | 精品一区二区免费视频 | 国产麻豆精品久久 | 国产字幕在线观看 | 日韩中文字幕免费在线播放 | 在线观看亚洲 | 日韩一级成人av | 黄色av高清 | 中文字幕乱码亚洲精品一区 | 国产欧美精品一区二区三区四区 | 91精品国产一区二区三区 | 久久不射电影院 | 亚洲电影网站 | 欧美一区二区三区特黄 | 久综合网 | 久久激情视频 | 久久一线 | 丁香婷婷激情网 | 国产精品女人久久久久久 | 国产乱对白刺激视频不卡 | 国产精品黄色 | 99久久网站 | 国产精品av在线免费观看 | 最新日韩精品 | 日韩精品无码一区二区三区 | 国产一区电影在线观看 | 国产99久久久国产精品成人免费 | 国内成人综合 | 欧美日韩视频在线观看免费 | 亚洲另类视频在线观看 | 网站你懂的 | 99久久综合狠狠综合久久 | 亚洲一区 影院 | 日韩av成人在线 | 18av在线视频 | 日日摸日日添日日躁av | 在线探花 | 欧美资源在线观看 | 日韩免费一二三区 | 免费看久久久 | 一区二区欧美在线观看 | 日韩欧美中文 | 日韩免费看视频 | 99久久精品国产一区二区成人 | 亚洲视频久久久 | 91av电影网| 日韩黄视频 | 日本三级人妇 | 一区二区三区四区在线 | 国产高清av免费在线观看 | 久久婷婷网 | www.天天操 | 日韩资源在线观看 | 国产系列 在线观看 | 国产中文字幕免费 | 日韩精品在线看 | 久久久激情网 | 久久久久久蜜桃一区二区 | 日韩成人黄色av | 精品国产一区二区三区四区vr | 亚洲区二区 | 欧美一区中文字幕 | 特级黄色视频毛片 | 天天爽夜夜爽人人爽曰av | 久久在线免费视频 | 操操操日日日干干干 | 97久久精品午夜一区二区 | 精品国产一区二区三区噜噜噜 | 日韩城人在线 | 玖玖999| 综合网av| 国产网站av| 成年人在线观看 | 日韩欧美高清免费 | 九九热在线精品 | 国产视频久久久久 | 久久久久久毛片 | 中文av字幕在线观看 | 亚洲欧美日韩国产精品一区午夜 | 狠狠色丁香婷婷综合久小说久 | 欧美一二三视频 | 日韩综合一区二区三区 | 最新日韩在线 | 天天干夜夜干 | 欧美精品亚洲精品日韩精品 | 99久高清在线观看视频99精品热在线观看视频 | 亚洲无人区小视频 | 色婷婷狠狠五月综合天色拍 | 99视频精品视频高清免费 | 亚洲精品tv | 91桃色在线播放 | 狠狠色香婷婷久久亚洲精品 | 亚洲成人av免费 | 五月婷香蕉久色在线看 | 丰满少妇在线观看 | 69久久久| 亚洲欧美视频 | 国产精品一区二区麻豆 | 国产成人精品一区二三区 | 成人av.com| 丁香婷婷网 | 日韩av女优视频 | 中文字幕第一页在线播放 | 国产成人av网址 | 色多视频在线观看 | 久久午夜电影网 | 国产精品一区二区白浆 | 亚洲精品国产成人 | 97国产在线 | 国产专区第一页 | 日韩高清无线码2023 | 免费一级特黄毛大片 | 国产精品免费麻豆入口 | 免费色黄 | 99视频在线免费观看 | 久久黄色小说视频 | 韩日精品中文字幕 | 色综合天天综合网国产成人网 | 国精产品永久999 | 婷婷在线资源 | 欧美日本一区 | 国产资源在线播放 | 国产精品久久一区二区三区不卡 | 色婷婷综合成人av | 香蕉免费 | 久久免费精品一区二区三区 | 美女一二三区 | 亚洲精品在线观看免费 | 成人97视频 | 国产精品久久久久久久久久三级 | 午夜影院一级片 | 在线精品视频免费观看 | 久久午夜免费视频 | 大胆欧美gogo免费视频一二区 | 在线观看深夜福利 | 久久久影院官网 | 亚洲激情电影在线 | 亚洲 在线| 精品久久久久久综合日本 | 国产日本三级 | 久久av免费 | 在线久草视频 | 五月黄色| 色在线中文字幕 | 成人黄色大片在线观看 | 国产精品免费小视频 | 国产欧美中文字幕 | 91精品啪在线观看国产81旧版 | 久草www | 97精品国产97久久久久久 | 国产一级a毛片视频爆浆 | 99re6热在线精品视频 | 日韩av中文在线观看 | 96精品视频 | 91入口在线观看 | 国产日韩中文字幕在线 | 国产手机在线视频 | 五月婷av | 久精品视频在线 | 国产日韩视频在线观看 | 亚洲一区欧美精品 | 欧美日韩精品在线播放 | 91大神精品视频在线观看 | 成年人在线免费看视频 | 亚洲欧洲国产精品 | 天天婷婷 | 黄av资源 | 成人av在线直播 | 久草久草久草久草 | 欧美日韩视频在线 | av免费观看在线 | 永久免费的av电影 | 日日爱网站 | 久久不卡电影 | 亚洲日本成人 | 国产色拍拍拍拍在线精品 | 久久草精品 | 国产成人福利在线观看 | 久操视频在线 | 国产淫片 | 国产免费久久av | 最近乱久中文字幕 | 2019中文在线观看 | 999国内精品永久免费视频 | 欧美精品中文 | 久久久www成人免费毛片 | 91毛片在线观看 | 日日麻批40分钟视频免费观看 | 国产1区2区3区精品美女 | 国内综合精品午夜久久资源 | 1024久久| 天天躁天天操 | 黄色一集片 | 超碰在线国产 | 久久99国产精品久久99 | 婷婷丁香色 | 在线观看黄色av | 国产成人一区二 | 国产视频亚洲 | 国产艹b视频 | av在线免费播放网站 | 久久99视频免费观看 | 国产精品免费看久久久8精臀av | 亚洲精品小视频 | 精品视频网站 | 久草免费在线观看视频 | 久久精品欧美一区 | 国产在线播放一区 | 免费开视频| 激情综合色图 | 中文字幕在线观看免费 | 在线视频日韩一区 | 人人干干人人 | 中文字幕在线观看国产 | 日韩理论影院 | 亚洲一级黄色大片 | 91探花系列在线播放 | 久久深夜 | 91成人免费看 | 亚洲禁18久人片 | 91在线看视频 | 久久久久五月天 | 日韩电影中文 | 亚洲国产成人精品久久 | 99精品亚洲 | 久久久久久久久久久综合 | 色多多在线观看 | 国产精品久久免费看 | 欧美日韩国产精品爽爽 | 米奇四色影视 | 久久久久久久久久伊人 | 国产二区电影 | 91精品国产91久久久久 | 999久久久久久 | 91精品在线免费观看视频 | 久久免费视频4 | 日本视频高清 | 欧美日韩国产伦理 | 国产a视频免费观看 | 国产黄色一级片在线 | 99理论片 | 91麻豆精品国产91久久久久久 | 97视频免费看 | 亚洲天天看 | 91在线欧美 | 91麻豆国产福利在线观看 | av 在线观看 | 天天插天天干天天操 | 国产一区二区三区在线免费观看 | 国产这里只有精品 | 干亚洲少妇 | 伊人婷婷在线 | 色九九在线 | 国产精品国产亚洲精品看不卡 | 色婷婷视频 | 欧美人交a欧美精品 | 亚洲精品视频在线观看免费 | 亚洲手机av | 婷婷久久久 | 亚洲年轻女教师毛茸茸 | 在线观看91精品视频 | 久久一精品 | 亚洲国产高清在线 | 天堂网一区二区 | 日日爱视频| 97爱爱爱| 欧美日韩精品在线免费观看 | 免费看特级毛片 | 天天操天天干天天操天天干 | 久久尤物电影视频在线观看 | 日韩中文字幕在线 | 99久久久国产精品免费观看 | 欧美激情第一页xxx 午夜性福利 | 精品国内 | 黄a网| www.99热精品| 一区二区视频免费在线观看 | 99热最新在线 | 三级av中文字幕 | 欧美另类视频 | 欧美精品一区二区免费 | 中文在线8新资源库 | www.啪啪.com | 国产精品永久久久久久久久久 | 久久久资源网 | 五月天久久精品 | 手机av片 | 欧美视频在线二区 | 欧美日韩后 | 韩日三级在线 | 蜜臀久久99精品久久久无需会员 | www亚洲视频 | 国产一级片不卡 | 依人成人综合网 | 国产一级片不卡 | 97碰碰视频 | 精品国产精品久久 | 狠狠色狠狠色综合系列 | 免费精品视频在线观看 | 97人人模人人爽人人喊中文字 | 91av成人| 美女久久久久久久 | 久久久在线 | www.五月婷婷.com | 国产精品永久免费在线 | 国产精品嫩草影视久久久 | 青青久草在线视频 | 综合久久久久久久 | 97香蕉久久超级碰碰高清版 | 五月天亚洲综合 | www.狠狠插.com | 国产福利午夜 | 久久久久久片 | 一本一本久久a久久 | 99热 精品在线 | 日女人电影 | 亚洲成免费 | 四虎国产 | 国产不卡在线看 | 国产视频一区在线播放 | 三级视频国产 | 在线成人观看 | 丝袜+亚洲+另类+欧美+变态 | 免费黄色av | 国产中文字幕国产 | 99 精品 在线 | 免费a v在线 | 中文字幕美女免费在线 | 欧美婷婷色 | 在线观看黄av | 成人观看 | 特级黄色电影 | 久久亚洲福利 | 黄色av电影免费观看 | 在线视频一区观看 | 久久精品1区 | 久久久黄色免费网站 | 在线成人国产 | 中文字幕.av.在线 | 92国产精品久久久久首页 | 色偷偷88888欧美精品久久久 | 日韩在线高清视频 | www.99av | av不卡网站 | 97理论电影 | 久久呀| 人成电影网| 91av亚洲| 精品91久久久久 | 欧美色婷婷 | 女人高潮特级毛片 | 久久精品日韩 | 日日夜夜亚洲 | 中文字幕第一页在线视频 | 国产精品伦一区二区三区视频 | 精品中文字幕在线 | 日韩欧美在线免费观看 | 久久久久亚洲精品男人的天堂 | 国产黄 | 在线看国产 | 国产精品乱码久久 | 国产精品黄色在线观看 | 成+人+色综合| 国产一区成人在线 | 99精品热视频只有精品10 | 亚洲成a人片在线观看网站口工 | 久久精品亚洲国产 | 日韩精品欧美精品 | 亚洲国产欧美在线人成大黄瓜 | 免费在线黄 | 色91av | 激情电影影院 | 成人国产网站 | 亚洲精品网站在线 | 天天操,夜夜操 | 国产精品久久久久久久久久久免费 | 精品国产视频在线观看 | 91传媒在线观看 | 天天操福利视频 | 丁香六月婷婷开心婷婷网 | 婷婷在线综合 | 色干干 | 免费精品| 亚洲 综合 专区 | 国产精品高清在线观看 | 亚洲天堂精品视频 | 激情动态 | 男女靠逼app | 久久精品国产精品亚洲精品 | 中文字幕在线播放视频 | 91视频麻豆视频 | wwwww.国产 | 国产性天天综合网 | 欧美孕妇与黑人孕交 | 一区二区三区免费播放 | 激情综合电影网 | 久久国内精品99久久6app | 久久免费精品一区二区三区 | 日韩免费专区 | 亚洲精品视频第一页 | 欧美另类xxxx | 亚洲色综合 | 亚洲男男gⅴgay双龙 | 综合精品久久久 | 久久国产精品免费看 | 久色网 | 国产日韩精品一区二区三区在线 | 久综合网 | 久久麻豆精品 | 福利视频网站 | 亚洲三级视频 | 最新久久免费视频 | 国产一区二区在线播放 | 婷婷看片 | 精品九九九九 | 九九久久视频 | 国产毛片久久久 | 久久免费资源 | 久久成人人人人精品欧 | 国产尤物在线 | 日韩在线精品一区 | 韩国av一区二区三区 | 国产成人高清 | 国产视频一区二区在线观看 | 国产精品久久久久久一区二区三区 | 欧美午夜性 | 日韩在线视频在线观看 | 日韩黄色一级电影 | www.天天射| 久久91网| 亚洲aⅴ在线 | 欧美一级电影免费观看 | 国产在线不卡一区 | 91亚洲国产成人 | 午夜精品一二三区 | 人人爽人人澡人人添人人人人 | www.亚洲精品 | 亚洲一区精品二人人爽久久 | av一区在线播放 | 麻豆91在线观看 | 麻豆传媒视频观看 | 丝袜精品视频 | 久久视频在线视频 | 欧美日韩中文国产一区发布 | 99热都是精品 | 中文字幕一区二区三区视频 | 日韩免费视频在线观看 | 午夜久草 | 久久久久美女 | 韩国av电影网 | 人人干天天干 | 国产主播99| 色五月情| www.xxx.性狂虐| 波多野结衣视频一区二区 | 97超碰人人模人人人爽人人爱 | 99视频久久 | 欧美久久久久久久 | 久久免费的精品国产v∧ | 欧美日韩中文国产一区发布 | a级国产乱理论片在线观看 伊人宗合网 | 日韩欧美一区二区三区在线 | 国产精品1区2区3区在线观看 | 永久黄网站色视频免费观看w | 久久久综合九色合综国产精品 | 在线欧美日韩 | 国产 在线 高清 精品 | 在线观看av片 | 国产免费三级在线观看 | 国产精品av在线免费观看 | 色婷婷97 | 99久久精品一区二区成人 | 黄网站色欧美视频 | 精品国产一二三 | 精品久久久久久亚洲综合网站 | 国产精品入口66mio女同 | 国产一线在线 | 精品国产一区二区三区久久 | 欧美国产日韩一区 | 久草在线资源视频 | 国内精品久久久久 | 丁香婷婷网 | 国产精品免费在线播放 | 91视频免费观看 | 欧美日韩网址 | 玖玖视频国产 | 日韩在线中文字幕 | 91精品国自产在线观看 | av天天在线观看 | 成人免费在线看片 | 久热精品国产 | 国产精品mv| 国产精品av一区二区 | 在线免费观看视频a | 日韩电影久久 | 免费在线激情视频 | 人人插人人射 | 色综合天天色综合 | 九九色在线观看 | 草久在线播放 | 天天干天天玩天天操 | 色狠狠综合天天综合综合 | 波多野结衣电影一区二区三区 | 免费在线观看中文字幕 | 久久最新网址 | 日韩免费在线观看 | 久青草国产在线 | 国产精品久久久久一区二区三区共 | 久久久久久久久久久久影院 | 99国产情侣在线播放 | 久久精品国产v日韩v亚洲 | 日韩高清久久 | 亚洲精品国产片 | 婷婷久久精品 | 亚洲美女久久 | 一本一道波多野毛片中文在线 | 天天夜夜狠狠操 | 精品欧美一区二区三区久久久 | 日日夜夜天天操 | 最新av免费在线观看 | 亚洲精品综合在线 | 日日夜夜精品免费观看 | 免费看的视频 | 色婷婷午夜| 精品国产中文字幕 | 麻豆影视网 | 国产精品第一页在线观看 | 97电影网站 | 99精品免费视频 | 国产精品永久免费观看 | 亚洲国产高清在线观看视频 | 亚洲黄色一级大片 | 欧美成人999 | 久久伦理视频 | 日韩欧美精品一区二区 | 韩国av免费在线观看 | 亚洲国产中文在线 | 亚洲免费成人av电影 | www日日| 久久成人国产精品 | 国产韩国日本高清视频 | 国产精久久久久久妇女av | 成人av在线影视 | 欧美日韩精品在线免费观看 | 国产一级淫片免费看 | 在线视频 成人 | 久久国产一区 | 欧美a免费 | 国产精品久久久久久久久久久久久 | 国产免费视频在线 | 中文在线字幕免 | 日韩久久精品一区二区 | 一区二区三区不卡在线 | 国产色女人 | 日韩精品一卡 | 免费成视频| 久久久精品一区二区 | 国产黄a三级 | 日韩欧美在线播放 | 色网址99| 国产精品免费观看国产网曝瓜 | 91探花国产综合在线精品 | 国产亚洲一区 | 人人玩人人添人人澡97 | 国产精品一区二区三区99 | 五月婷婷在线播放 | 国产精品12| 九九免费精品视频在线观看 | 91亚洲永久精品 | 九九综合九九综合 | 九九在线视频 | 成人av在线电影 | 成人97视频一区二区 | 久草视频在线资源站 | 久久精品直播 | 国产精品白浆 | 日韩在线视 | 一级成人免费视频 | 国产a级精品 | 久久精品一二三 | 天天视频色 | 久久无码av一区二区三区电影网 | 国产精品国产精品 | 国产亚洲视频在线免费观看 | 国产精品a成v人在线播放 | 亚洲精品中文字幕在线 | 国产专区在线看 | 中文乱码视频在线观看 | 国产精品大片免费观看 | 国产色视频网站 | 99人成在线观看视频 | 中文字幕 91 | 亚洲黄色高清 | 婷婷在线网 | 日韩精品在线一区 | av电影中文字幕在线观看 | 日韩av免费在线看 | 91久久久久久久一区二区 | 婷婷中文字幕在线观看 | 日韩av电影免费观看 | 在线播放第一页 | 国产亚洲视频在线 | 天天射天天舔天天干 | 天天操天天弄 | 亚洲精品国偷自产在线91正片 | 色在线国产 | 日韩在线视 | 在线免费av播放 | a在线一区| 国产一级二级视频 | 天天操天天干天天操天天干 | 在线观看中文字幕一区二区 | 欧美色图亚洲图片 | 韩国av免费在线观看 | 日日婷婷夜日日天干 | 久久久久成人免费 | 免费看日韩片 | 88av网站| 欧美日韩不卡在线 | 日韩最新在线 | 成人av在线观 | 久久蜜桃av| 91九色视频导航 | 国产香蕉久久精品综合网 | 婷婷5月色 | 欧美日韩性生活 | 久久婷婷影视 | 伊人狠狠操 | 欧美综合色 | 亚洲国产精品99久久久久久久久 | 中文字幕在线免费97 | 99精品偷拍视频一区二区三区 | 欧美精品中文字幕亚洲专区 | 日本中文字幕在线一区 | 69性欧美 | 欧美日bb | 天天天天天天天天操 | 免费黄色网址网站 | 成人在线一区二区 | 午夜国产福利在线 | 亚洲mv大片欧洲mv大片免费 | 日韩视频免费观看高清完整版在线 | 久久久久久久久久网 | 久久综合影视 | 久影院| 亚洲精品综合一二三区在线观看 | 国产精品网红直播 | 欧美三级免费 | 亚洲视频久久久久 | 在线只有精品 | 日韩综合精品 |