精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

服務(wù)器+客戶端的聊天程序

開發(fā) 后端
在當今這樣一個網(wǎng)絡(luò)時代,很多技術(shù)都以網(wǎng)絡(luò)為中心在誕生。本文介紹了服務(wù)器端+客戶端的聊天系統(tǒng),希望對大家有用。

最近也在接觸SOCKET編程,在當今這樣一個網(wǎng)絡(luò)時代,很多技術(shù)都以網(wǎng)絡(luò)為中心在誕生,至少我認為是這樣的,而SOCKET套接字接口,在實現(xiàn)網(wǎng)絡(luò)通訊上處于關(guān)鍵地位,所以不會SOCKET是不行的。

首先,本文主要是針對那些剛接觸SOCKET編程的朋友,如果是高手,就可以不看此文啦

在開始之前,我們需要預(yù)習一些基礎(chǔ)知識:

什么是SOCKET套接字?

SOCKET通常有那幾種數(shù)據(jù)格式?

線程的概念?

(以上基本知識我就不講了,網(wǎng)上這方面資料很多的,大家找資料看下吧)

我要介紹的是一個服務(wù)器端+客戶端的聊天系統(tǒng),程序比較簡單,我先把程序運行的界面給大家看下:

上面是服務(wù)器端運行界面;下面把客戶端界面貼給大家看下:

客戶端界面 

功能比較簡單,服務(wù)器的端口號可以在“系統(tǒng)菜單”里面的參數(shù)配置進行修改的。

看了上面的圖,下面我們就給大家把代碼貼出來:(因為程序比較簡單,所以本人就沒有去分層啦)

服務(wù)器端代碼:

  1.  using System;  
  2.  using System.Collections.Generic;  
  3.  using System.ComponentModel;  
  4.  using System.Data;  
  5.  using System.Drawing;  
  6.  using System.Text;  
  7.  using System.Windows.Forms;  
  8.    
  9.  using System.Net;  
  10.  using System.Net.Sockets;  
  11.  using System.Threading;  
  12.  using System.Xml;  
  13.    
  14.  namespace Server  
  15.  {  
  16.      public partial class ServerMain : Form  
  17.      {  
  18.          public ServerMain()  
  19.          {  
  20.              InitializeComponent();  
  21.          }  
  22.    
  23.          private void ServerMain_Load(object sender, EventArgs e)  
  24.          {  
  25.              this.CmdStar.Enabled = true;  
  26.              this.CmdStop.Enabled = false;  
  27.          }  
  28.    
  29.          private void 配置參數(shù)ToolStripMenuItem_Click(object sender, EventArgs e)  
  30.          {  
  31.              Set TSet = new Set();  
  32.              TSet.ShowDialog();  
  33.          }  
  34.  
  35.          private void 關(guān)于ToolStripMenuItem_Click(object sender, EventArgs e)  
  36.          {  
  37.              About TAbout = new About();  
  38.              TAbout.Show();  
  39.          }  
  40.          /// < summary>  
  41.          /// 獲得XML文件中的端口號  
  42.          /// < /summary>  
  43.          /// < returns>< /returns>  
  44.          private int GetPort()  
  45.          {  
  46.              try 
  47.              {  
  48.                  XmlDocument TDoc = new XmlDocument();  
  49.                  TDoc.Load("Settings.xml");  
  50.                  string TPort = TDoc.GetElementsByTagName("ServerPort")[0].InnerXml;  
  51.                  return Convert.ToInt32(TPort);  
  52.    
  53.              }  
  54.              catch { return 6600; }//默認是6600  
  55.          }  
  56.    
  57.          //聲明將要用到的類  
  58.          private IPEndPoint ServerInfo;//存放服務(wù)器的IP和端口信息  
  59.          private Socket ServerSocket;//服務(wù)端運行的SOCKET  
  60.          private Thread ServerThread;//服務(wù)端運行的線程  
  61.          private Socket[] ClientSocket;//為客戶端建立的SOCKET連接  
  62.          private int ClientNumb;//存放客戶端數(shù)量  
  63.          private byte[] MsgBuffer;//存放消息數(shù)據(jù)  
  64.    
  65.          private void CmdStar_Click(object sender, EventArgs e)  
  66.          {  
  67.              ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  
  68.              ServerInfo=new IPEndPoint(IPAddress.Any,this.GetPort());  
  69.              ServerSocket.Bind(ServerInfo);//將SOCKET接口和IP端口綁定  
  70.              ServerSocket.Listen(10);//開始監(jiān)聽,并且掛起數(shù)為10  
  71.    
  72.              ClientSocket = new Socket[65535];//為客戶端提供連接個數(shù)  
  73.              MsgBuffer = new byte[65535];//消息數(shù)據(jù)大小  
  74.              ClientNumb = 0;//數(shù)量從0開始統(tǒng)計  
  75.    
  76.              ServerThread = new Thread(RecieveAccept);//將接受客戶端連接的方法委托給線程  
  77.              ServerThread.Start();//線程開始運行  
  78.    
  79.              CheckForIllegalCrossThreadCalls = false;//不捕獲對錯誤線程的調(diào)用  
  80.    
  81.              this.CmdStar.Enabled = false;  
  82.              this.CmdStop.Enabled = true;  
  83.              this.StateMsg.Text = "服務(wù)正在運行"+"  運行端口:"+this.GetPort().ToString();  
  84.              this.ClientList.Items.Add("服務(wù)于 " + DateTime.Now.ToString() + " 開始運行.");  
  85.          }  
  86.            
  87.          //接受客戶端連接的方法  
  88.          private void RecieveAccept()  
  89.          {  
  90.              while (true)  
  91.              {  
  92.                  ClientSocket[ClientNumb] = ServerSocket.Accept();  
  93.                  ClientSocket[ClientNumb].BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, new AsyncCallback(RecieveCallBack),ClientSocket[ClientNumb]);  
  94.                  this.ClientList.Items.Add(ClientSocket[ClientNumb].RemoteEndPoint.ToString()+" 成功連接服務(wù)器.");  
  95.                  ClientNumb++;  
  96.              }  
  97.          }  
  98.    
  99.          //回發(fā)數(shù)據(jù)給客戶端  
  100.         private void RecieveCallBack(IAsyncResult AR)  
  101.         {  
  102.             try 
  103.             {  
  104.                 Socket RSocket = (Socket)AR.AsyncState;  
  105.                 int REnd = RSocket.EndReceive(AR);  
  106.                 for (int i = 0; i <  ClientNumb; i++)  
  107.                 {  
  108.                     if (ClientSocket[i].Connected)  
  109.                     {  
  110.                         ClientSocket[i].Send(MsgBuffer, 0, REnd,0);  
  111.                     }  
  112.                     RSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, new AsyncCallback(RecieveCallBack), RSocket);  
  113.  
  114.                 }  
  115.             }  
  116.             catch { }  
  117.  
  118.         }  
  119.  
  120.         private void CmdStop_Click(object sender, EventArgs e)  
  121.         {  
  122.             ServerThread.Abort();//線程終止  
  123.             ServerSocket.Close();//關(guān)閉SOCKET  
  124.  
  125.             this.CmdStar.Enabled = true;  
  126.             this.CmdStop.Enabled = false;  
  127.             this.StateMsg.Text = "等待運行";  
  128.             this.ClientList.Items.Add("服務(wù)于 " + DateTime.Now.ToString() + " 停止運行.");  
  129.         }  
  130.  
  131.  
  132.  
  133.     }  

客戶端代碼:

  1.  using System;  
  2.  using System.Collections.Generic;  
  3.  using System.ComponentModel;  
  4.  using System.Data;  
  5.  using System.Drawing;  
  6.  using System.Text;  
  7.  using System.Windows.Forms;  
  8.    
  9.  using System.Net;  
  10.  using System.Net.Sockets;  
  11.  
  12. namespace Client  
  13. {  
  14.     public partial class ClientMain : Form  
  15.     {  
  16.         public ClientMain()  
  17.         {  
  18.             InitializeComponent();  
  19.         }  
  20.  
  21.         private IPEndPoint ServerInfo;  
  22.         private Socket ClientSocket;  
  23.         private Byte[] MsgBuffer;  
  24.         private Byte[] MsgSend;  
  25.  
  26.         private void ClientMain_Load(object sender, EventArgs e)  
  27.         {  
  28.             this.CmdSend.Enabled = false;  
  29.             this.CmdExit.Enabled = false;  
  30.  
  31.             ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  
  32.             MsgBuffer = new Byte[65535];  
  33.             MsgSend = new Byte[65535];  
  34.             CheckForIllegalCrossThreadCalls = false;  
  35.  
  36.             Random TRand=new Random();  
  37.             this.UserName.Text = "用戶" + TRand.Next(10000).ToString();  
  38.         }  
  39.  
  40.         private void CmdEnter_Click(object sender, EventArgs e)  
  41.         {  
  42.             ServerInfo = new IPEndPoint(IPAddress.Parse(this.ServerIP.Text), Convert.ToInt32(this.ServerPort.Text));  
  43.  
  44.             try 
  45.             {  
  46.                 ClientSocket.Connect(ServerInfo);  
  47.  
  48.                 ClientSocket.Send(Encoding.Unicode.GetBytes("用戶: " + this.UserName.Text + " 進入系統(tǒng)!\n"));  
  49.  
  50.                 ClientSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);  
  51.  
  52.                 this.SysMsg.Text += "登錄服務(wù)器成功!\n";  
  53.                 this.CmdSend.Enabled = true;  
  54.                 this.CmdEnter.Enabled = false;  
  55.                 this.CmdExit.Enabled = true;  
  56.             }  
  57.             catch 
  58.             {  
  59.                 MessageBox.Show("登錄服務(wù)器失敗,請確認服務(wù)器是否正常工作!");  
  60.             }  
  61.         }  
  62.  
  63.         private void ReceiveCallBack(IAsyncResult AR)  
  64.         {  
  65.             try 
  66.             {  
  67.                 int REnd = ClientSocket.EndReceive(AR);  
  68.                 this.RecieveMsg.AppendText(Encoding.Unicode.GetString(MsgBuffer, 0, REnd));  
  69.                 ClientSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);  
  70.  
  71.             }  
  72.             catch 
  73.             {  
  74.                 MessageBox.Show("已經(jīng)與服務(wù)器斷開連接!");  
  75.                 this.Close();  
  76.            }  
  77.  
  78.         }  
  79.  
  80.         private void CmdSend_Click(object sender, EventArgs e)  
  81.         {  
  82.            MsgSend = Encoding.Unicode.GetBytes(this.UserName.Text + "說:\n" + this.SendMsg.Text + "\n");  
  83.             if (ClientSocket.Connected)  
  84.             {  
  85.                 ClientSocket.Send(MsgSend);  
  86.                 this.SendMsg.Text = "";  
  87.             }  
  88.             else 
  89.             {  
  90.                 MessageBox.Show("當前與服務(wù)器斷開連接,無法發(fā)送信息!");  
  91.             }  
  92.         }  
  93.  
  94.         private void CmdExit_Click(object sender, EventArgs e)  
  95.         {  
  96.             if (ClientSocket.Connected)  
  97.             {  
  98.                 ClientSocket.Send(Encoding.Unicode.GetBytes(this.UserName.Text + "離開了房間!\n"));  
  99.                 ClientSocket.Shutdown(SocketShutdown.Both);  
  100.                ClientSocket.Disconnect(false);  
  101.            }  
  102.            ClientSocket.Close();  
  103.  
  104.            this.CmdSend.Enabled = false;  
  105.            this.CmdEnter.Enabled = true;  
  106.            this.CmdExit.Enabled = false;  
  107.        }  
  108.  
  109.        private void RecieveMsg_TextChanged(object sender, EventArgs e)  
  110.        {  
  111.            this.RecieveMsg.ScrollToCaret();  
  112.        }  
  113.  
  114.        private void SendMsg_KeyDown(object sender, KeyEventArgs e)  
  115.        {  
  116.            if (e.Control && e.KeyValue == 13)  
  117.            {  
  118.                e.Handled = true;  
  119.                this.CmdSend_Click(thisnull);  
  120.            }  
  121.        }  
  122.  
  123.  
  124.  
  125.  
  126.    }  

我只對服務(wù)器端的代碼做了注釋,客戶端就沒有寫注釋了,因為代碼是差不多的。區(qū)別在于客戶端不需要監(jiān)聽,也不需要啟用線程進行委托。

關(guān)于 ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

這句代碼,我想給初學者解釋一下,這里“AddressFamily.InterNetwork”表示的是使用IPV4地址,“SocketType.Stream”表示使用的是流格式(另外還有數(shù)據(jù)包格式和原始套接字格式),“ProtocolType.Tcp”表示使用TCP協(xié)議(另外還有很多其它協(xié)議,例如大家??吹降腢DP協(xié)議)。

服務(wù)器端+客戶端的聊天系統(tǒng)就介紹完了。另外關(guān)于SOCKET類中的BeginReceive方法,請大家參考MSDN,里面有詳細說明。

【編輯推薦】

  1. 關(guān)于C#知識點總結(jié)
  2. C#開發(fā)和使用中的33個技巧
  3. SQL Server存儲過程介紹
  4. C#下SQL Server 2008表類型參數(shù)傳遞
  5. C#向SQL Server中插入記錄時的問題
責任編輯:book05 來源: 博客園
相關(guān)推薦

2011-06-09 10:51:26

Qt 服務(wù)器 客戶端

2010-06-09 14:39:58

2014-01-17 15:23:55

Nagios

2018-12-18 10:47:37

2018-07-17 09:59:10

PythonUDP服務(wù)器

2009-09-16 16:09:41

NIS服務(wù)器客戶端NIS

2018-12-19 10:31:32

客戶端IP服務(wù)器

2009-12-25 10:47:17

DNS服務(wù)器

2019-08-28 15:19:15

PythonTCP服務(wù)器

2012-05-29 09:38:04

Linux客戶端服務(wù)器

2018-12-20 08:50:53

TCPIP服務(wù)器

2010-10-11 17:46:01

mysql客戶端

2010-08-27 10:18:24

DHCP服務(wù)

2009-06-27 20:32:00

LinuxNFS客戶端

2010-10-26 13:54:45

連接Oracle服務(wù)器

2025-06-19 02:30:00

Spring服務(wù)器MCP

2014-06-01 11:03:13

VDI零客戶端

2024-02-22 13:47:40

2012-05-07 13:55:41

JavaJava Web

2009-06-10 16:25:02

點贊
收藏

51CTO技術(shù)棧公眾號

成人污污视频在线观看| 午夜欧美精品久久久久久久| 欧美色国产精品| 中文字幕一区二区三区精彩视频| 97超视频在线观看| 亚洲欧洲日本一区二区三区| 亚洲色图综合久久| 午夜影院免费观看视频| 小草在线视频免费播放| 亚洲视频 欧洲视频| 久久99九九| 国产精选久久久| 先锋影音国产一区| 久久国产精品久久久久| 成人乱码一区二区三区av| 麻豆一区在线| 91福利小视频| 精品国偷自产一区二区三区| 成人高潮成人免费观看| 夫妻av一区二区| 成人黄色av网| 最新黄色网址在线观看| 伊人成人在线| 欧美大成色www永久网站婷| 亚洲国产日韩一区无码精品久久久| 亚洲不卡视频| 欧美久久一二区| 日本老熟妇毛茸茸| 日本在线播放一二三区| 亚洲一区二区免费视频| 免费观看黄色大片| 色欧美激情视频在线| 久久五月婷婷丁香社区| 国产免费一区二区三区| www.国产.com| 国产乱国产乱300精品| 国产欧美精品久久久| 99久久久无码国产精品免费蜜柚 | 日韩av一区二区在线| 亚洲小视频网站| 国产亚洲精彩久久| 91国内精品野花午夜精品| 日本毛片在线免费观看| 98色花堂精品视频在线观看| 亚洲少妇30p| 精品1区2区| 亚洲精品久久久久久久久久| 久久国产精品99精品国产| 国产91ⅴ在线精品免费观看| 一级黄色录像视频| 91麻豆精品国产91久久久平台| 精品视频久久久| 图片区偷拍区小说区| 精品视频在线播放一区二区三区| 婷婷久久综合九色综合绿巨人| 国产欧美综合一区| 男人的天堂在线视频免费观看 | 免费在线观看av| 国产亚洲欧美日韩俺去了| 国产日韩在线一区二区三区| www日本高清视频| 国产综合久久久久久鬼色| 国产精品h在线观看| 精品人妻一区二区三区免费看| 极品av少妇一区二区| 在线视频欧美性高潮| 亚洲色图 激情小说| 日韩精品久久| 久久精品国产成人精品| 成年人看的免费视频| 奇米影视亚洲| 中文字幕亚洲欧美日韩在线不卡| 日韩人妻无码精品综合区| 伊人春色之综合网| 亚洲欧洲在线视频| 深爱五月激情网| 精品久久久亚洲| 日韩最新在线视频| 亚洲波多野结衣| 欧美日韩国产免费观看| 国外成人在线播放| 91香蕉在线视频| 性一交一乱一区二区洋洋av| 欧美在线激情网| 免费观看日批视频| www.激情五月| 久草福利资源在线| 国产成人精品一区二区三区视频 | 免费成人美女在线观看.| 国产精品旅馆在线| 中文字幕码精品视频网站| 另类中文字幕网| 99国产高清| 天堂91在线| 国产精品嫩草久久久久| 免费看污污视频| 91超碰国产在线| 在线一区二区三区| 99九九精品视频| 久久亚洲黄色| 久久精品亚洲94久久精品| 久久久久成人精品无码| 日韩亚洲国产精品| 国产精品pans私拍| 国产裸体永久免费无遮挡| 懂色中文一区二区在线播放| 欧美黑人xxxxx| 麻豆传媒在线观看| 午夜在线电影亚洲一区| 美女一区二区三区视频| 7m精品国产导航在线| 亚洲视频视频在线| 黄色一级视频免费| 日韩成人免费在线| 亚洲伊人久久大香线蕉av| 污视频在线免费| 亚洲欧洲99久久| 九九九九免费视频| av在线成人| 亚洲精品之草原avav久久| 国产色无码精品视频国产| 国产欧美亚洲一区| 成人免费视频在线观看超级碰| 国产综合无码一区二区色蜜蜜| 久久久www成人免费无遮挡大片| 国产树林野战在线播放| 欧美黄色网页| 精品88久久久久88久久久| 国产精品一区二区亚洲| 亚洲综合欧美| 成人欧美一区二区三区视频xxx| 粉嫩一区二区三区国产精品| 亚洲国产综合色| 嫩草影院国产精品| 自拍视频一区| 2019中文字幕在线免费观看| 亚洲av无码一区二区三区dv| 国产精品久久久爽爽爽麻豆色哟哟| 白白操在线视频| 99热这里有精品| 色小说视频一区| 美女又爽又黄免费视频| 丁香婷婷综合激情五月色| 伊人精品久久久久7777| 国模一区二区| 精品在线小视频| 久久精品国产亚洲AV无码男同| 久久超碰97中文字幕| 日本免费高清一区二区| av资源在线| 精品伦理精品一区| 妺妺窝人体色www在线下载| 国内精品国产成人| 自拍偷拍一区二区三区| 日韩毛片免费看| 中文字幕亚洲一区在线观看| 一区二区视频免费观看| 欧美国产日韩精品免费观看| 一二三在线视频| 风间由美性色一区二区三区四区 | 水蜜桃亚洲精品| 欲香欲色天天天综合和网| 亚洲福利在线视频| 日韩免费不卡视频| 91免费观看在线| 黑人糟蹋人妻hd中文字幕| 老司机在线精品视频| 韩国v欧美v日本v亚洲| 国精品人妻无码一区二区三区喝尿| 亚洲免费观看高清完整版在线观看熊| 污污的视频免费观看| 久久精品亚洲人成影院| 国产精品入口日韩视频大尺度| 日本在线免费播放| 欧美亚洲日本国产| 一二三四国产精品| 久久99精品一区二区三区| 2021狠狠干| 国产精品白浆| 国产成人91久久精品| 欧美男男激情freegay| 91极品视觉盛宴| 麻豆一区在线观看| 国产成人av一区| 成人av一级片| 日本久久综合| 国产日韩欧美夫妻视频在线观看| 蜜桃视频在线观看www社区 | 色欲久久久天天天综合网| 亚洲成人av一区二区三区| 丰满大乳奶做爰ⅹxx视频| 日韩国产高清影视| 裸体大乳女做爰69| 精品精品国产三级a∨在线| 国产成人精品久久二区二区91| 欧美三级黄网| 日韩欧美国产综合| 在线免费观看国产精品| 亚洲女爱视频在线| 污污污www精品国产网站| 日韩电影在线一区| 久久久久久久香蕉| 亚洲区小说区| 成人国产在线视频| 麻豆视频在线看| 自拍偷拍亚洲精品| 成人午夜视频一区二区播放| 欧美日韩亚洲成人| 一区二区国产精品精华液| 9色porny自拍视频一区二区| 成人性生生活性生交12| 韩国欧美一区| 日本视频一区二区不卡| 日韩在线精品强乱中文字幕| 日本乱人伦a精品| 超碰最新在线| 国产偷亚洲偷欧美偷精品| 国产乱码精品一区二区| 性做久久久久久久免费看| 暗呦丨小u女国产精品| 久久免费国产精品| 国产成人精品综合久久久久99| 久久免费黄色| 精品无码国产一区二区三区av| 成人在线免费观看网站| 久久久av水蜜桃| 免费精品一区| 国产精品人成电影| 中文在线а√天堂| 欧美黄色成人网| 风间由美一区| 亚洲国产精品久久久久久| 中文字幕人妻一区二区在线视频| 亚洲不卡一区二区三区| 日本爱爱小视频| 国产欧美一区二区精品忘忧草| 性色av蜜臀av浪潮av老女人| 国产麻豆精品视频| 天天操天天干天天做| 石原莉奈在线亚洲三区| 国产精品无码av在线播放| 欧美日韩亚洲国产精品| 一区二区在线观| 精品国产一区二区三区久久久蜜臀| 久久99九九| 青草久久视频| 国产一区二区在线网站| 亚洲不卡视频| 91九色露脸| av在线国产精品| 成人黄在线观看| 亚洲狼人综合| 成人网在线免费看| 欧美aaaaaaaa| 国产欧亚日韩视频| 国产精品.xx视频.xxtv| 国产精品九九久久久久久久| 高清电影一区| 国产精品美女久久久久久免费| 成人美女大片| 国产成人自拍视频在线观看| av在线最新| 国内久久久精品| 韩日毛片在线观看| 欧美影院久久久| 欧美大电影免费观看| 日韩**中文字幕毛片| av电影免费在线看| 3344国产精品免费看| 欧美成人精品一区二区男人小说| 国产成人激情视频| 91av一区| 91成人免费观看| 国产精品国产亚洲精品| 狠狠色伊人亚洲综合网站色| 日本三级久久| 日韩电影免费观看在| 深爱激情综合| 在线视频91| 欧美三级网页| 中国丰满人妻videoshd| 日韩精品色哟哟| 国产女同无遮挡互慰高潮91| 国产激情一区二区三区四区 | 永久久久久久| 欧美黄色免费| 两根大肉大捧一进一出好爽视频| 久久最新视频| 亚洲妇熟xx妇色黄蜜桃| 成人激情免费网站| 日韩人妻无码精品综合区| 1000部国产精品成人观看| 婷婷国产成人精品视频| 亚洲视频狠狠干| av大片免费观看| 欧美日韩高清一区| 蜜桃av中文字幕| 国产一区二区三区免费视频| 18+视频在线观看| 欧美亚洲视频在线看网址| 不卡亚洲精品| 国产九色精品| 激情综合网五月| 久久综合亚洲精品| 久久精品男女| 少妇性l交大片7724com| 久久久久久久久久久99999| 2025国产精品自拍| 91久久精品国产91性色tv| www日本高清| 亚洲人成绝费网站色www| 日韩专区av| 国产精品久久国产精品99gif| 视频精品一区| 少妇特黄a一区二区三区| 欧美成人精品| 五月婷婷狠狠操| 成人黄色av电影| 欧美激情精品久久久久久免费| 香港成人在线视频| 国产av精国产传媒| 影音先锋欧美精品| 亚洲美女尤物影院| 99re6在线| 91精品国产91久久久久久密臀| 国产免费一区二区视频| 美女视频第一区二区三区免费观看网站| 亚洲自拍偷拍精品| 亚洲人成在线播放网站岛国| 无码久久精品国产亚洲av影片| 亚洲国产精品久久久久秋霞蜜臀 | 久久6免费高清热精品| 巨茎人妖videos另类| 91精品免费| 欧美一区成人| 在线免费观看av网| 中文字幕av一区二区三区高| 国产精品久免费的黄网站| 日韩免费一区二区| www国产在线观看| 成人h猎奇视频网站| 久久93精品国产91久久综合| 国产欧美在线一区| www.在线成人| 国产真实乱偷精品视频| 欧美一级二级在线观看| 免费黄色电影在线观看| 国产精品欧美日韩一区二区| 国产精品亚洲二区| 国产精品一区二区小说| 国产视频一区在线播放| 国产精品一区无码| 国产午夜一区二区| a屁视频一区二区三区四区| 亚洲欧洲日韩综合二区| 欧美a级一区二区| 97超碰在线免费观看| 一本大道久久a久久综合婷婷 | 亚洲男人天堂久| a日韩av网址| 日韩在线第一区| 日本欧美一区二区三区乱码| 人妻精品久久久久中文字幕| 日韩欧美在线一区| av在线电影院| 国产欧美在线看| 在线成人直播| 国产精品亚洲一区二区无码| 亚洲成人综合视频| 欧美在线观看在线观看| 国产高清在线不卡| 欧美系列电影免费观看| 玖玖爱视频在线| 亚洲毛片av在线| 人人妻人人澡人人爽人人欧美一区| 海角国产乱辈乱精品视频| 思热99re视热频这里只精品| 亚洲乱码中文字幕久久孕妇黑人| 久久久三级国产网站| 中文字幕丰满人伦在线| 九九热在线精品视频| 天堂久久av| 999精品视频在线| 亚洲视频综合在线| 国产 日韩 欧美 精品| 日韩av手机在线| 小说区亚洲自拍另类图片专区 | 中文字幕+乱码+中文乱码91| 久久精品视频亚洲| 超碰精品在线观看| 黑鬼大战白妞高潮喷白浆| 国产精品欧美久久久久一区二区| 中文字字幕在线中文乱码| 久久久久久国产三级电影| 国产91久久精品一区二区| 久久久久xxxx| 激情成人中文字幕| 天天影视久久综合| 国产 高清 精品 在线 a| 久久婷婷麻豆|