亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mynetchatdlg.cpp

?? 一個簡單的視頻會議VC++MFC工程文件
?? CPP
字號:
// MyNetChatDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyNetChat.h"
#include "MyNetChatDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define WM_NETICON   WM_USER+100
///////////////////////////////////////////////////////////////////////////////////
SOCKET m_socket,m_hSocket;//host sock
sockaddr_in m_addr;//host address
sockaddr_in m_raddr;//host recive client address
sockaddr_in m_caddr;
char *message=NULL;
char *name=NULL;
int nItem;
CString changstr;
bool exitmsg=FALSE;
CString strname;
UINT AcceptThread(LPVOID lpvoid);
//CWinThread *pAccept;
SOCKET m_cSocket;//client sock
NOTIFYICONDATA tnd;  //add icon
bool ShowApp=FALSE;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	afx_msg void OnMenuitem32774();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
	ON_COMMAND(ID_MENUITEM32774, OnMenuitem32774)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyNetChatDlg dialog

CMyNetChatDlg::CMyNetChatDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMyNetChatDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyNetChatDlg)
	m_sendstr = _T("");
	m_showstr = _T("");
	m_name = _T("");
	show = ""; 
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMyNetChatDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyNetChatDlg)
	DDX_Control(pDX, IDC_EDIT1, m_showname);
	DDX_Control(pDX, IDC_USER, m_List);
	DDX_Control(pDX, IDC_SHOWSTR, m_show);
	DDX_Control(pDX, IDC_SENDSTR, m_send);
	DDX_Control(pDX, IDC_SENDED,m_SD);
	DDX_Control(pDX, IDC_FINDUSER,m_FU);
	DDX_Text(pDX, IDC_SENDSTR, m_sendstr);
	DDX_Text(pDX, IDC_SHOWSTR, m_showstr);
	DDX_Text(pDX, IDC_EDIT1, m_name);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMyNetChatDlg, CDialog)
	//{{AFX_MSG_MAP(CMyNetChatDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_COMMAND(ID_CREATHOST, OnCreathost)
	ON_COMMAND(ID_EXITCHAT, OnExitchat)
	ON_NOTIFY(NM_DBLCLK, IDC_USER, OnDblclkUser)
	ON_WM_CREATE()
	ON_COMMAND(ID_EXITWL, OnExitwl)
	ON_COMMAND(ID_SHOWAPP, OnSetSever)
	ON_BN_CLICKED(IDC_SENDED,OnSended)
	ON_BN_CLICKED(IDC_FINDUSER, OnFinduser)
	ON_COMMAND(ID_MENUITEM32774, OnMenuitem32774)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_NETICON,AddIcon)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyNetChatDlg message handlers

BOOL CMyNetChatDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.
   	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	    char localname[64];
	    GetName(localname);
		changstr=localname;
	//////////////////////////////////
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMyNetChatDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMyNetChatDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
UINT AcceptThread(LPVOID lpvoid)
{
    int Addrlength=sizeof(m_raddr);
	m_socket=accept(m_hSocket,(LPSOCKADDR)&m_raddr,&Addrlength);
	if(m_socket==INVALID_SOCKET)
	{
		closesocket(m_hSocket);
		m_socket=NULL;
		AfxMessageBox("Accept Error");
		return 0;
	}
	AfxBeginThread(AcceptThread,NULL);
	char buff[1024];
	int ret=recv(m_socket,buff,1024,0);
    if(ret==0||ret==SOCKET_ERROR)
	{
		closesocket(m_socket);
		AfxMessageBox("recv bad");
		return 0;
	}	
    if(buff!=NULL)
	{
		int msgleng=0;
		int nameleng=0;
		int i;
		nameleng=buff[0];
		name=new char[nameleng+1];
		for(i=0;i<nameleng;i++)
		{name[i]=buff[i+1];}
         msgleng=buff[nameleng+1];
		 message=new char[msgleng+1];
		 for(i=0;i<msgleng;i++)
		 {
			 message[i]=buff[i+2+nameleng];
		 }
         name[nameleng]='\0';
         message[msgleng]='\0';
		 CMyNetChatDlg* SM=(CMyNetChatDlg*)(AfxGetApp()->m_pMainWnd);
		 SM->ShowRecvData();
	}	
	return 0;
}

HCURSOR CMyNetChatDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMyNetChatDlg::OnCreathost() //create host
{
	if(m_hSocket!=NULL)
	{
		closesocket(m_hSocket);
		m_hSocket=NULL;
	}
	if(m_hSocket==NULL)
	{
		m_hSocket=socket(AF_INET,SOCK_STREAM,0);
		ASSERT(m_hSocket!=NULL);
	}
	UpdateData(TRUE);
	m_addr.sin_addr.S_un.S_addr=INADDR_ANY;
	m_addr.sin_family=AF_INET;
	m_addr.sin_port=htons(52428);
	int ret=0;
	ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr));
	if(ret==SOCKET_ERROR)
	{
		closesocket(m_hSocket);
		AfxMessageBox("Bind Error");
		return ;
	}
	
	ret=listen(m_hSocket,12);
	if(ret==SOCKET_ERROR)
	{
		closesocket(m_hSocket);
		AfxMessageBox("Listen Error");
		return ;
	}
	AfxBeginThread(AcceptThread,NULL);
}

void CMyNetChatDlg::OnExitchat() 
{
	// EXit Application and all thread;
	exitmsg=TRUE;
	Shell_NotifyIcon(NIM_DELETE,&tnd);
	CDialog::OnOK();
		
}
void CMyNetChatDlg::GetName(char Temp[64])
{
  gethostname(Temp,64);
}

CString CMyNetChatDlg::GetIP(CString username)
{
  CString hostaddr;
  struct hostent *hostname=gethostbyname(username);
  for(int i=0;hostname!=NULL&&hostname->h_addr_list[i];i++)
  {
  hostaddr=inet_ntoa(*(struct in_addr *)hostname->h_addr_list[i]);
  }
  return hostaddr;
}
void CMyNetChatDlg::OnSended() 
{
	// send message to host
	m_showname.GetWindowText(m_name);
	if(m_name.IsEmpty())
	{
		AfxMessageBox("請選擇發送用戶");
		return;
	}
     strname=GetIP(m_name);
	 if(m_cSocket!=NULL)
	{
		closesocket(m_cSocket);
		m_cSocket=NULL;
	}
	if(m_cSocket==NULL)
	{
		m_cSocket=socket(AF_INET,SOCK_STREAM,0);
		ASSERT(m_cSocket!=NULL);
	}
	UpdateData(TRUE);
    m_caddr.sin_addr.S_un.S_addr=inet_addr(strname);
	m_caddr.sin_family=AF_INET;
	m_caddr.sin_port=htons(52428);
    int ret=0;
	int caddrlength=sizeof(m_caddr);
	ret=connect(m_cSocket,(LPSOCKADDR)&m_caddr,caddrlength);
	if(ret==SOCKET_ERROR)
	{
		connectFlag=FALSE;
		int err=WSAGetLastError();
		if(err==10061)
			AfxMessageBox(_T("服務器未打開"));
		return ;
	}
	connectFlag=TRUE;
	if(connectFlag==TRUE)
	{
		m_send.GetWindowText(m_sendstr);
		if(m_sendstr.IsEmpty())
		{
			AfxMessageBox(_T("不能發空消息!"));
			return;
		}
		CString sendstr;
		char *sendbuf=NULL;
		sendstr+=char(changstr.GetLength());
		sendstr+=changstr;
		sendstr+=char(m_sendstr.GetLength());
		sendstr+=m_sendstr;
		show+="我說:";
		show+=m_sendstr;
		show+="\r\n";
        GetDlgItem(IDC_SHOWSTR)->SetWindowText(show);
		CEdit * output=(CEdit *)GetDlgItem(IDC_SHOWSTR);
    	output->LineScroll(output->GetLineCount());
		sendbuf=sendstr.GetBuffer(0);
		sendstr.ReleaseBuffer(-1);
		int slength;
		slength=send(m_cSocket,sendbuf,sendstr.GetLength(),0);
		if(slength!=sendstr.GetLength()||m_cSocket==SOCKET_ERROR)
		{
			int errs=WSAGetLastError();
			AfxMessageBox(_T("發送消息失敗"));
			return ;
		}
		m_send.SetWindowText("");
		return ;
	}
	AfxMessageBox(_T("請先連接"));
}

void CMyNetChatDlg::OnDblclkUser(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos;
	m_showname.SetWindowText("");
	nItem=0;
	pos=m_List.GetFirstSelectedItemPosition();
	if(pos==NULL)
	{
		return ;
	}else
	{
		while(pos)
		{
			nItem=m_List.GetNextSelectedItem(pos);
		}
	m_name=m_List.GetItemText(nItem,0);
	m_showname.SetWindowText(m_name);
	}
	*pResult = 0;
	
}
void CMyNetChatDlg::ShowRecvData()
{
	CString tempstr;
	tempstr="";
	m_show.SetWindowText("");
	if(name!=NULL&&message!=NULL)
	{
	tempstr=name;
	m_showstr=message;
	show+=tempstr;
	show+=":";
	show+=m_showstr;
	show+="\r\n";
	GetDlgItem(IDC_SHOWSTR)->SetWindowText(show);
	CEdit * output=(CEdit *)GetDlgItem(IDC_SHOWSTR);
    output->LineScroll(output->GetLineCount());
//	m_show.SetWindowText(tempstr+":"+m_showstr);	
	message=NULL;
	name=NULL;
	}
}
void CMyNetChatDlg::OnOK()
{
}
void CMyNetChatDlg::OnCancel()
{
	exitmsg=TRUE;
}

int CMyNetChatDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	
      tnd.cbSize=sizeof(NOTIFYICONDATA);
      tnd.hWnd=this->m_hWnd;
      tnd.uID=IDR_MAINFRAME;
      tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
      tnd.uCallbackMessage=WM_NETICON;
      tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),
      MAKEINTRESOURCE(IDR_MAINFRAME)); 
      strcpy(tnd.szTip,"私人討論");
      Shell_NotifyIcon(NIM_ADD,&tnd);	
	return 0;
}
void CMyNetChatDlg::AddIcon(WPARAM wParam,LPARAM lParam)
{
	CMenu W_menu,*pmenu;
	UINT uMouseMsg;
	UINT uID;
	POINT pos;
	uID=(UINT)wParam;
	uMouseMsg=(UINT)lParam;
	W_menu.LoadMenu(IDR_WULIAO);
    pmenu=W_menu.GetSubMenu(0);
	CWnd *pMain=AfxGetMainWnd();
	if(uMouseMsg==WM_RBUTTONDOWN)
	{
		switch(uID)
		{
		case IDR_MAINFRAME:
			GetCursorPos(&pos);
			pMain->SetForegroundWindow();
			::TrackPopupMenu(pmenu->m_hMenu,0,pos.x,pos.y,0,pMain->GetSafeHwnd(),NULL);
		break;
		}
	}
     return;
}
void CMyNetChatDlg::OnExitwl() 
{
	// TODO: Add your command handler code here
	OnExitchat();
}

void CMyNetChatDlg::OnSetSever() 
{
	// TODO: Add your command handler code here
	OnCreathost();
}

BOOL CMyNetChatDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(pMsg->message==WM_SYSKEYDOWN)
	{
		short AltState=::GetKeyState(0x12);
		if((AltState)&&(pMsg->wParam==VK_F4))
		{
			OnExitchat();
		}
	}
	if(pMsg->message==WM_KEYDOWN)
	{
		if(pMsg->wParam==VK_TAB)
			OnSended();
	}
	return CDialog::PreTranslateMessage(pMsg);
}
void CMyNetChatDlg::GetLanActiveComputer()
{
	CString strTemp;
    struct hostent *host;

//struct in_addr *ptr; // 檢索IP地址 

    DWORD dwScope = RESOURCE_CONTEXT;
    NETRESOURCE *NetResource = NULL;
    HANDLE hEnum;
    WNetOpenEnum( dwScope, NULL, NULL, 
             NULL, &hEnum );
    if ( hEnum )
	{
    DWORD Count = 0xFFFFFFFF;
    DWORD BufferSize = 2048;
    LPVOID Buffer = new char[2048];
    WNetEnumResource( hEnum, &Count, 
        Buffer, &BufferSize );
    NetResource = (NETRESOURCE*)Buffer;

    char szHostName[200];
    unsigned int i;

    for ( i = 0;i < BufferSize/sizeof(NETRESOURCE);i++, NetResource++ )
    {
        if ( NetResource->dwUsage ==RESOURCEUSAGE_CONTAINER &&NetResource->dwType ==RESOURCETYPE_ANY )
        {
            if ( NetResource->lpRemoteName )
            {
                CString strFullName =NetResource->lpRemoteName;
                if ( 0 ==strFullName.Left(2).Compare("\\\\") )   
                    strFullName =strFullName.Right(strFullName.GetLength()-2);
                gethostname( szHostName,strlen( szHostName ) );
                host = gethostbyname(strFullName);
                if(host == NULL) continue; 
                strTemp.Format("%s",strFullName);
                m_List.InsertItem(i,strTemp,0);
            }
        }
    }
    delete Buffer;
    WNetCloseEnum( hEnum ); 
}
}

void CMyNetChatDlg::OnFinduser() 
{
	GetLanActiveComputer();
	Sleep(1000);
}

void CAboutDlg::OnMenuitem32774() 
{
	// TODO: Add your command handler code here
   
}

void CMyNetChatDlg::OnMenuitem32774() 
{
	// TODO: Add your command handler code here
	 CAboutDlg dlg;
	dlg.DoModal();	
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产髙清在线看国产毛片| 亚洲图片欧美综合| 日韩精品专区在线影院重磅| 色菇凉天天综合网| 欧美日韩午夜在线| 欧美一区二区播放| 日韩美女视频在线| 中文字幕中文字幕在线一区| 亚洲特黄一级片| 亚洲成人你懂的| 国产一区二区三区四区五区美女| 国产一区二区三区黄视频 | 成人一区在线看| 麻豆精品视频在线| 亚洲一区成人在线| 亚洲成人av在线电影| 亚洲黄色片在线观看| 综合久久久久久| 欧洲精品中文字幕| 欧美日韩国产小视频| 日韩电影一区二区三区四区| 午夜精品久久久久久久| 无吗不卡中文字幕| 免费成人av资源网| 狠狠色丁香九九婷婷综合五月| 国内精品在线播放| 99久久精品久久久久久清纯| 日本视频免费一区| 九九国产精品视频| 成人av电影免费在线播放| 一本久道中文字幕精品亚洲嫩| 91天堂素人约啪| 日韩欧美一二三四区| 国产色产综合色产在线视频| 欧美日韩一区二区在线观看| 欧美三级日韩三级国产三级| 91麻豆精品国产自产在线| 久久午夜电影网| 亚洲图片欧美综合| 国产又黄又大久久| 欧美日韩极品在线观看一区| 99re热视频这里只精品| 日韩一级大片在线观看| wwww国产精品欧美| 亚洲h在线观看| 色综合久久久久久久| 国产三级精品视频| 奇米在线7777在线精品 | 国产原创一区二区| 91精品国产综合久久久久久漫画| 99精品视频一区| 成a人片亚洲日本久久| 国产精品另类一区| 99麻豆久久久国产精品免费| 国产无一区二区| 成人午夜激情影院| 欧美精品国产精品| 免费在线观看视频一区| 日韩精品一区二区三区在线| 日本不卡的三区四区五区| 欧美不卡一区二区三区| 亚洲mv大片欧洲mv大片精品| 欧美肥妇毛茸茸| 国产伦精一区二区三区| 777色狠狠一区二区三区| 久久99精品国产| 中文字幕欧美区| 欧美午夜片在线观看| 麻豆精品国产传媒mv男同| 国产亚洲欧美日韩日本| 成人性生交大片免费看中文网站| 中文字幕亚洲在| 日韩欧美中文字幕公布| 五月天一区二区| 日韩欧美在线123| 91在线国产观看| 黄色精品一二区| 香港成人在线视频| 欧美一区二区三区在线电影| 美女视频黄免费的久久| 一区二区三区欧美日| 久久九九国产精品| 日韩一级片网站| 91麻豆精品国产91久久久使用方法| 蜜桃视频在线一区| 精品国产成人在线影院 | 精品一二线国产| 亚洲成人av在线电影| 久久er99热精品一区二区| 依依成人精品视频| 99久久精品一区| 欧美亚男人的天堂| 亚洲欧洲精品一区二区三区不卡| 亚洲欧美偷拍另类a∨色屁股| 日韩欧美中文字幕制服| 免费欧美日韩国产三级电影| 亚洲视频 欧洲视频| 日韩欧美视频在线 | 国产99一区视频免费| 国产一区二区伦理片| 国产毛片精品视频| 国产成人综合视频| 国产成人日日夜夜| 99久久久免费精品国产一区二区| 日本在线不卡一区| 亚洲成人av在线电影| 亚洲三级在线播放| 久久精品日产第一区二区三区高清版 | 亚洲一区二区三区在线播放| 精品粉嫩aⅴ一区二区三区四区 | 欧美三级三级三级爽爽爽| 欧美中文字幕一二三区视频| 欧美精品一卡两卡| 欧美亚洲一区三区| 91精品视频网| 国产精品天美传媒| 亚洲九九爱视频| 美女一区二区三区在线观看| 国产69精品久久99不卡| 91在线视频观看| 久久综合精品国产一区二区三区 | 欧美一区二区三区免费| 久久一区二区视频| 亚洲一区成人在线| 成人av在线电影| 欧美一区二区三区在线电影| 中文字幕一区二区三区蜜月| 亚洲欧美日韩一区二区| 黄色精品一二区| 欧美一区二区免费视频| 亚洲免费在线播放| 成人国产精品视频| 久久久亚洲午夜电影| 三级成人在线视频| 欧美精选一区二区| 欧美一二三区精品| 一区二区三区在线免费视频| 国产成人av一区二区三区在线观看| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产精品99久久久久久久久| 久久69国产一区二区蜜臀| 欧美性大战久久| 亚洲国产综合人成综合网站| 欧美三级乱人伦电影| 97精品电影院| 亚洲午夜激情网页| 欧美一区二区国产| 日本少妇一区二区| 在线视频国内一区二区| 日韩美女视频19| 欧美精品 日韩| 精品一区二区三区免费| 国产亚洲欧美中文| 91免费观看国产| 久久草av在线| 亚洲精品一二三区| 精品国产不卡一区二区三区| 丁香激情综合国产| 亚洲视频在线一区| 欧美精品久久久久久久多人混战| 日本女人一区二区三区| 中文无字幕一区二区三区| 欧美精品久久一区| 91麻豆自制传媒国产之光| 午夜电影网一区| 亚洲欧美另类在线| 日韩欧美一级特黄在线播放| 成人a区在线观看| 国产乱码精品1区2区3区| 日韩二区三区在线观看| 亚洲男人的天堂在线aⅴ视频| 日韩亚洲欧美在线| 欧美日韩黄色一区二区| 成人网页在线观看| 国产乱子伦视频一区二区三区| 午夜激情一区二区| 亚洲九九爱视频| 亚洲精品福利视频网站| 中国av一区二区三区| 国产亚洲欧美日韩俺去了| 欧美一区二区免费| 日韩丝袜美女视频| 成人福利电影精品一区二区在线观看| 激情欧美一区二区三区在线观看| 日韩国产欧美在线观看| 爽爽淫人综合网网站| 午夜精品一区在线观看| 亚洲成av人片一区二区梦乃| ●精品国产综合乱码久久久久| 亚洲视频免费看| 亚洲人妖av一区二区| 亚洲一区二区在线视频| 亚洲日本护士毛茸茸| 亚洲伊人色欲综合网| 男女男精品视频网| 国产精品中文有码| 91一区二区在线| 欧美午夜不卡视频| 久久综合中文字幕| 亚洲乱码一区二区三区在线观看|