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

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

?? mynetchatdlg.cpp

?? 這個系統基于WINDOWS系統下完成的通信程序
?? 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("請選擇發送用戶");
		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;
		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;
	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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦理网| 色94色欧美sute亚洲13| 欧美电视剧免费全集观看| 蜜臀精品一区二区三区在线观看| 欧美日韩精品一区视频| 亚洲1区2区3区视频| 91精品国产综合久久精品性色| 午夜av区久久| 日韩你懂的在线播放| 国产精品1区二区.| 亚洲女性喷水在线观看一区| 欧美视频在线一区二区三区| 青青青伊人色综合久久| 精品成人一区二区| 懂色av一区二区夜夜嗨| 亚洲免费在线观看| 69堂亚洲精品首页| 国产高清不卡一区| 亚洲最新视频在线观看| 日韩一区二区视频在线观看| 国产美女视频一区| 亚洲综合在线电影| 精品日韩一区二区| 北条麻妃国产九九精品视频| 亚洲国产美国国产综合一区二区| 91精品国产色综合久久不卡蜜臀| 国产乱子轮精品视频| 一区二区三区在线不卡| 欧美成人性战久久| 在线亚洲一区二区| 久久福利视频一区二区| 亚洲色大成网站www久久九九| 欧美一二三在线| 99久久夜色精品国产网站| 日韩一区精品视频| 亚洲欧美在线另类| 欧美α欧美αv大片| 欧美日韩一区二区三区在线看 | 国产一区二区在线免费观看| 亚洲天堂精品视频| 精品国产一区二区精华| 欧美性受xxxx黑人xyx性爽| 韩国成人精品a∨在线观看| 亚洲欧美日韩国产成人精品影院| 欧美成人一级视频| 欧美日韩精品欧美日韩精品一| 国产成人在线视频免费播放| 日韩成人一区二区三区在线观看| 中文字幕一区二区三区不卡| 欧美本精品男人aⅴ天堂| 色哟哟国产精品| 成人自拍视频在线观看| 男女视频一区二区| 亚洲午夜国产一区99re久久| 中国av一区二区三区| 精品日韩一区二区| 欧美一区二区三区免费大片| 欧洲精品视频在线观看| 国产宾馆实践打屁股91| 另类欧美日韩国产在线| 日韩精品电影一区亚洲| 一区二区三区电影在线播| 国产精品色噜噜| 午夜久久电影网| 亚洲资源在线观看| 亚洲精品成a人| 亚洲天堂免费在线观看视频| 欧美国产精品一区二区| 国产清纯在线一区二区www| 69堂成人精品免费视频| 欧美精品一二三四| 欧美日韩亚洲综合在线| 欧美在线观看视频一区二区三区| a美女胸又www黄视频久久| 国产91丝袜在线播放0| 国内精品伊人久久久久av一坑| 经典三级一区二区| 精品一区二区三区视频| 精品一区中文字幕| 国产曰批免费观看久久久| 精品综合免费视频观看| 国产综合一区二区| 久久99精品久久久久婷婷| 蜜桃精品视频在线观看| 久99久精品视频免费观看| 美女免费视频一区| 精品一区二区三区影院在线午夜| 亚洲电影在线免费观看| 亚洲精品高清视频在线观看| 亚洲三级理论片| 亚洲综合自拍偷拍| 日本亚洲免费观看| 国内欧美视频一区二区| 成人av网站免费| 色噜噜狠狠成人中文综合 | 日日摸夜夜添夜夜添亚洲女人| 日韩高清不卡一区| 极品少妇xxxx精品少妇| 国产福利91精品一区| 99久久er热在这里只有精品66| 91久久国产最好的精华液| 欧美色老头old∨ideo| 精品少妇一区二区三区视频免付费 | 亚洲最快最全在线视频| 免费高清在线一区| 国产99一区视频免费| 91成人网在线| 欧美一级片免费看| 国产免费久久精品| 亚洲一区二区三区不卡国产欧美| 青青草伊人久久| av午夜精品一区二区三区| 精品视频1区2区| 欧美成人福利视频| 亚洲欧美日韩小说| 老司机精品视频在线| 99久久综合99久久综合网站| 欧美日韩亚洲不卡| 欧美韩国日本综合| 无吗不卡中文字幕| www.亚洲精品| 日韩欧美国产午夜精品| 亚洲欧美自拍偷拍| 国模冰冰炮一区二区| 欧美亚洲一区三区| 日本一区二区三区久久久久久久久不| 一区二区三区**美女毛片| 国产在线一区观看| 国产无一区二区| 日韩在线a电影| 99麻豆久久久国产精品免费| 欧美一级日韩一级| 亚洲人成7777| 欧美日韩日本视频| 欧美高清视频不卡网| 国产精品久久久久永久免费观看 | 国产欧美视频在线观看| 亚洲不卡av一区二区三区| 丁香婷婷综合激情五月色| 91精品国产综合久久香蕉麻豆| 国产精品久久久久aaaa| 久久99精品久久久| 欧美日韩一区二区在线观看视频| 欧美激情综合五月色丁香 | 久久久久久久综合色一本| 亚洲国产综合色| av成人动漫在线观看| 久久欧美中文字幕| 久久99久久99| 欧美一区二区免费| 爽好久久久欧美精品| 欧美自拍偷拍一区| 亚洲色图色小说| 国产成人aaa| 久久精品一区二区三区四区| 捆绑调教美女网站视频一区| 欧美日韩在线免费视频| 亚洲日本电影在线| 成人午夜av影视| 久久久不卡影院| 国产精品一区二区久激情瑜伽 | 欧美成人女星排行榜| 日日摸夜夜添夜夜添精品视频| 色天使色偷偷av一区二区| 国产精品网站一区| www.欧美日韩| 中文字幕第一页久久| 成人高清免费观看| 亚洲色欲色欲www| 一本一道久久a久久精品| 国产精品不卡一区| 欧美日韩国产一级二级| 亚洲444eee在线观看| 欧美高清dvd| 日本美女视频一区二区| 91精品国产入口| 日本vs亚洲vs韩国一区三区| 欧美日本国产视频| 蜜臀av国产精品久久久久| 精品久久久网站| 国产精品一区二区91| 国产精品麻豆欧美日韩ww| 成人综合在线网站| 国产精品久久久久久久久快鸭 | 国产精品久久久久精k8| 一本久道中文字幕精品亚洲嫩| 亚洲精品国产精品乱码不99| 欧美在线播放高清精品| 日韩电影在线免费看| 精品精品国产高清一毛片一天堂| 国产一区视频网站| 国产精品乱码人人做人人爱| 色婷婷综合久久久| 日韩国产精品久久| 国产日韩高清在线| 色狠狠一区二区三区香蕉| 日韩电影在线看| 亚洲国产精品黑人久久久| 日本道免费精品一区二区三区| 一区二区三区中文在线|