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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mynetchatdlg.cpp

?? 關(guān)于MFC的開發(fā)教程,只要是在WINDOWS上的開發(fā)!可以看看啊,對初學(xué)者很有用的
?? 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
	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)
	//}}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("");
	//}}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)
	//}}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("請選擇發(fā)送用戶");
		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("服務(wù)器未打開"));
		return ;
	}
	connectFlag=TRUE;
	if(connectFlag==TRUE)
	{
		m_send.GetWindowText(m_sendstr);
		if(m_sendstr.IsEmpty())
		{
			AfxMessageBox(_T("不能發(fā)空消息!"));
			return;
		}
		CString sendstr;
		char *sendbuf=NULL;
		sendstr+=char(changstr.GetLength());
		sendstr+=changstr;
		sendstr+=char(m_sendstr.GetLength());
		sendstr+=m_sendstr;
		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("發(fā)送消息失敗"));
			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;
	m_show.SetWindowText(tempstr+":"+m_showstr);	
	message=NULL;
	name=NULL;
	}
}
void CMyNetChatDlg::OnOK()
{
}
void CMyNetChatDlg::OnCancel()
{
}

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);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级xxx| 国产精品久久久久四虎| 久久婷婷色综合| 中文字幕在线不卡| 蜜臀久久久久久久| 在线一区二区观看| 国产片一区二区三区| 青娱乐精品视频| 欧美色图在线观看| 成人欧美一区二区三区1314| 国产在线不卡视频| 欧美日韩在线播| 欧美国产日产图区| 免费高清在线一区| 欧美一区二区三区四区视频| 亚洲免费在线电影| 国产乱淫av一区二区三区| 欧美一区三区二区| 午夜电影一区二区| 欧美日韩视频第一区| 亚洲激情av在线| 在线看国产一区二区| 亚洲精品日产精品乱码不卡| 成人高清免费观看| 国产日韩欧美a| 国产精品一区二区在线观看不卡| 欧美日韩成人综合| 天天综合色天天综合色h| 欧美日韩精品二区第二页| 亚洲国产综合在线| 欧美精品tushy高清| 亚洲午夜久久久久久久久电影院| 色吊一区二区三区| 亚洲国产综合色| 欧美日韩一本到| 日韩电影在线免费| 日韩欧美一级二级三级| 五月综合激情婷婷六月色窝| 欧美视频一二三区| 日本亚洲欧美天堂免费| 欧美大胆人体bbbb| 国产激情一区二区三区| 中文字幕一区二区三区不卡| 在线免费观看视频一区| 天堂午夜影视日韩欧美一区二区| 91精品国产麻豆国产自产在线| 蜜桃视频第一区免费观看| 精品少妇一区二区三区在线视频| 国产毛片精品国产一区二区三区| 国产亚洲欧美一区在线观看| 成人app网站| 亚洲第一福利一区| 日韩精品一区二| 粉嫩av一区二区三区在线播放 | 亚洲一二三专区| 欧美日韩国产在线观看| 久久精品国产久精国产爱| 久久女同性恋中文字幕| 91麻豆国产自产在线观看| 偷拍亚洲欧洲综合| 国产欧美日韩一区二区三区在线观看| 色综合天天综合网国产成人综合天| 午夜天堂影视香蕉久久| 色综合中文字幕国产 | 亚洲欧美激情在线| 欧美一级高清片在线观看| 国产河南妇女毛片精品久久久| 中文字幕在线不卡一区二区三区| 欧美理论在线播放| 丁香激情综合五月| 日韩国产一区二| 国产精品久久久久三级| 欧美日韩1区2区| 成人高清视频在线| 九九视频精品免费| 亚洲一区二区三区四区不卡| 精品av久久707| 色天使色偷偷av一区二区| 精品中文字幕一区二区| 亚洲尤物在线视频观看| 欧美激情综合在线| 日韩午夜小视频| 欧美又粗又大又爽| voyeur盗摄精品| 精品一区二区三区在线播放视频 | 中文字幕在线不卡| 26uuu国产在线精品一区二区| 欧美午夜视频网站| 91亚洲国产成人精品一区二三| 激情文学综合插| 五月天视频一区| 亚洲制服丝袜一区| 亚洲欧洲国产日韩| 欧美—级在线免费片| 久久久综合精品| 日韩午夜中文字幕| 欧美精品粉嫩高潮一区二区| 色狠狠一区二区| 91啦中文在线观看| 99在线视频精品| 国产成人免费视频网站 | 日韩av不卡在线观看| 亚洲欧美视频一区| 亚洲欧洲日韩av| 亚洲视频网在线直播| 国产亚洲欧美日韩俺去了| 日韩欧美国产成人一区二区| 欧美剧情片在线观看| 欧美美女一区二区在线观看| 欧洲精品一区二区| 欧美日韩日日夜夜| 欧美日韩国产首页在线观看| 欧美在线观看禁18| 欧美三级韩国三级日本三斤| 欧美午夜精品一区二区三区| 欧美在线制服丝袜| 欧美亚一区二区| 6080日韩午夜伦伦午夜伦| 在线播放亚洲一区| 91精品国产综合久久精品图片| 欧美日韩国产123区| 欧美福利一区二区| 日韩一级黄色大片| 久久久精品综合| 国产精品久久久久久久久图文区| 亚洲欧洲另类国产综合| 亚洲精品国产一区二区精华液 | 精品日韩在线观看| 久久久久久亚洲综合| 欧美精彩视频一区二区三区| 国产精品免费免费| 亚洲一本大道在线| 美女国产一区二区| 丁香婷婷综合激情五月色| 一本色道a无线码一区v| 欧美日韩一区二区三区不卡| 日韩三级视频在线看| 国产日产欧美一区二区视频| 亚洲欧美日本在线| 三级在线观看一区二区| 国产一区在线精品| 91麻豆精品在线观看| 日韩免费观看2025年上映的电影| 国产午夜精品一区二区三区视频| 亚洲人被黑人高潮完整版| 日韩一区欧美二区| 岛国一区二区在线观看| 3d动漫精品啪啪一区二区竹菊| 日本一区二区三区久久久久久久久不 | 欧美国产一区在线| 亚洲欧洲美洲综合色网| 爽好久久久欧美精品| 国产福利91精品| 精品视频999| 中文av字幕一区| 日韩国产一二三区| 99精品欧美一区二区三区综合在线| 欧美美女激情18p| 中文欧美字幕免费| 日韩不卡在线观看日韩不卡视频| 成人激情视频网站| 日韩欧美在线1卡| 亚洲综合清纯丝袜自拍| 成人永久aaa| 精品嫩草影院久久| 亚洲一区二区三区自拍| 国产麻豆9l精品三级站| 欧美日韩日日摸| 一区二区三区在线影院| 国产成人一区在线| 欧美一区二区福利在线| 一区二区三区日韩欧美| 国产成人免费网站| 日韩欧美一级二级三级久久久| 亚洲图片自拍偷拍| 色噜噜狠狠成人中文综合| 久久色.com| 精油按摩中文字幕久久| 91.麻豆视频| 午夜亚洲国产au精品一区二区| 色综合天天综合狠狠| 国产精品久久久久影院老司| 国产一区三区三区| 欧美成人精品3d动漫h| 日本中文字幕不卡| 欧美区视频在线观看| 一卡二卡三卡日韩欧美| 色欧美日韩亚洲| 亚洲视频你懂的| 91影视在线播放| 亚洲色大成网站www久久九九| 久久99国产精品久久| 日韩视频一区在线观看| 天天操天天干天天综合网| 99久久综合99久久综合网站| 国产女人aaa级久久久级| 精品一区二区av| 久久伊人蜜桃av一区二区| 久久99日本精品| 亚洲精品在线三区|