精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国产成人午夜性a一级毛片| 亚洲老妇色熟女老太| 日韩精品第一区| 日韩一级片网址| www插插插无码视频网站| 飘雪影院手机免费高清版在线观看| 伦一区二区三区中文字幕v亚洲| 久久精品99国产精| 日本乱理伦在线| 91免费版在线| 亚洲xxxx18| 免费黄色网址在线| 在线中文一区| 国产亚洲精品久久久久久牛牛| 国产欧美一区二| 在线免费av资源| 亚洲精品免费播放| 日韩一区国产在线观看| 粉嫩小泬无遮挡久久久久久| 日本v片在线高清不卡在线观看| 欧美第一黄色网| 无码人妻aⅴ一区二区三区69岛| 无码国模国产在线观看| 欧美制服丝袜第一页| 国内少妇毛片视频| 色大18成网站www在线观看| 99久久久免费精品国产一区二区| 国产在线视频一区| 无码人妻久久一区二区三区| 影音先锋亚洲精品| 久久亚洲电影天堂| 美国一级黄色录像| 亚洲三级网址| 亚洲福利影片在线| 亚洲性图第一页| 欧美高清免费| 欧美日韩一二三区| 不要播放器的av网站| 综合久久2019| 综合久久国产九一剧情麻豆| 日本a级片久久久| 午夜18视频在线观看| 国产1区2区3区精品美女| 91精品视频观看| 亚洲专区第一页| 全国精品久久少妇| 国产精品久久久久久av福利软件| 欧美在线观看不卡| 欧美69wwwcom| 色综合91久久精品中文字幕| 四虎精品免费视频| 亚洲精品99| 欧美老女人性生活| 久艹视频在线观看| 在线精品一区| 国产91精品青草社区| 日韩一区二区视频在线| 国产精品99一区二区| 久久99久久久久久久噜噜| 欧美日韩在线国产| 欧美日韩福利| 97色伦亚洲国产| av图片在线观看| 免费人成网站在线观看欧美高清| 国产精品视频区1| 一二三四区在线| 国产一区二区伦理| 波多野结衣久草一区| 成人午夜精品福利免费| jizz一区二区| 日本一区二区三区视频免费看| 大乳在线免费观看| 国产精品久久久久久久久久免费看 | 波多野结衣在线观看| 午夜精品一区二区三区电影天堂| 男人添女人下面高潮视频| 在线亚洲人成| 欧美区在线观看| 亚洲熟女乱综合一区二区| 999久久久精品一区二区| 亚洲激情视频在线播放| 精品欧美一区二区久久久| 日韩欧美一区免费| 色综合色综合网色综合| 成人免费看片98欧美| 日韩不卡手机在线v区| 国产欧美精品日韩精品| 超碰在线人人干| 91麻豆成人久久精品二区三区| 香蕉久久夜色| 欧美伦理免费在线| 色综合久久久久网| 日韩av片免费观看| 精品综合久久88少妇激情| 亚洲深夜福利网站| 波多野结衣在线网址| 99日韩精品| 国产日韩中文字幕| 亚洲男人天堂久久| 国产日产亚洲精品系列| 欧美黑人在线观看| 三上悠亚激情av一区二区三区| 欧美久久久久久蜜桃| 超碰男人的天堂| 欧美电影免费观看高清| 98精品在线视频| 一卡二卡三卡在线| 91免费在线看| 国产91视频一区| 国产成人a视频高清在线观看| 精品国产亚洲一区二区三区在线观看| 亚洲女优在线观看| 亚洲国产黄色| 91老司机在线| 大乳在线免费观看| 黑人巨大精品欧美一区二区免费| 中文字幕日韩久久| 国产精品免费不| 久久免费精品日本久久中文字幕| 一女二男一黄一片| 国产网站一区二区| 国产精品免费入口| 亚洲综合影院| 久久精品视频导航| 美女黄页在线观看| 久久亚洲综合色| xxxx18hd亚洲hd捆绑| 激情五月综合婷婷| 色噜噜狠狠色综合网图区| 一级片免费在线播放| 99久久精品国产麻豆演员表| 欧美少妇在线观看| 在线高清欧美| 色婷婷综合久久久久| 欧美性猛交xxxx乱大交hd| aaa国产一区| 久久久久久久久久久99| 日韩一区二区三区精品 | 18+视频在线观看| 欧美日产在线观看| 青青青视频在线播放| 天堂av在线一区| 欧美裸体网站| 另类激情视频| 亚洲视频在线看| 国产伦精品一区二区三区视频网站| 99热精品一区二区| a在线视频观看| 天天操综合520| 78色国产精品| 精品欧美不卡一区二区在线观看 | 亚洲欧美日韩一区二区三区在线观看| mm131亚洲精品| 爽成人777777婷婷| 国产精品一区二区三区毛片淫片| 番号在线播放| 欧美日韩高清在线| av成人免费网站| 福利91精品一区二区三区| www.欧美黄色| 福利在线一区| 日产精品久久久一区二区福利| 黄色大片在线看| 国产欧美一区二区三区在线老狼| 久久综合久久综合九色| 欧美aⅴ一区二区三区视频| 欧美一区91| 亚洲精品aⅴ| 蜜桃麻豆av在线| 菠萝蜜视频国产在线播放| 成人在线免费观看视频| 精品二区三区线观看| 日韩成人av影院| 国产欧美丝祙| 日韩精品欧美一区二区三区| 国产精品成人国产| 九九精品视频在线| 午夜一区在线观看| 欧美亚洲日本一区| 精品无码久久久久成人漫画| 成+人+亚洲+综合天堂| 久久精品午夜福利| 亚洲一区欧美| 精品在线视频一区二区| 日韩国产网站| 欧美乱大交xxxxx另类电影| 人妻妺妺窝人体色www聚色窝| 日韩欧美极品在线观看| 中文乱码字幕高清一区二区| 国产成人av一区| 手机看片福利日韩| 国产精品扒开腿做爽爽爽软件| 久久国产手机看片| 91精品国产色综合久久不卡粉嫩| 欧美劲爆第一页| 18视频免费网址在线观看| 日韩欧美一区电影| 成年人晚上看的视频| 一区二区三区欧美视频| 成人黄色免费网址| 成人精品视频.| 国产一二三区av| 国产精品嫩草99av在线| 超碰97免费观看| 女厕嘘嘘一区二区在线播放| 91精品国产综合久久香蕉| 热三久草你在线| 欧美成人免费在线观看| 国产大学生校花援交在线播放| 日韩一区二区三区视频| 免费黄色一级大片| 亚洲成人免费电影| 裸体武打性艳史| 国产日韩欧美a| 一区二区视频观看| 国产超碰在线一区| 女人高潮一级片| 日本va欧美va瓶| 女性女同性aⅴ免费观女性恋| 自拍偷拍欧美| 亚洲欧洲精品一区二区| 欧美男男gaytwinkfreevideos| 国产精成人品localhost| 国产亚洲观看| 国产精品视频一区二区高潮| 成人性生活视频| 97在线观看视频国产| av香蕉成人| xxxxx91麻豆| 视频免费一区| 在线观看欧美日韩国产| 国内在线免费高清视频| 亚洲国产一区二区三区在线观看| 国产a级免费视频| 欧美剧情片在线观看| 国产精品无码粉嫩小泬| 一本一道久久a久久精品综合蜜臀| 日本五十路女优| 亚洲成人资源在线| 日本网站免费观看| 午夜私人影院久久久久| 日本视频www| 午夜国产不卡在线观看视频| 日本三级片在线观看| 亚洲午夜电影在线观看| 欧美日韩国产精品综合| 一区二区三区免费网站| 久久老司机精品视频| 一区二区三区.www| 精品无码免费视频| 亚洲国产精品天堂| 三级黄色在线视频| 欧美日韩免费在线观看| 国产精品男女视频| 色妞www精品视频| 香蕉污视频在线观看| 91国产免费看| 国产老女人乱淫免费| 欧美一二三四在线| 六月婷婷综合网| 精品一区二区三区三区| 九色蝌蚪在线| www.欧美免费| 欧洲成人综合网| 91wwwcom在线观看| 色豆豆成人网| 成人美女av在线直播| 一区中文字幕电影| 久久福利电影| 久久美女视频| 国产av熟女一区二区三区| 一本色道久久综合亚洲精品高清| 日韩激情免费视频| 久久99精品久久只有精品| 亚洲精品一二三四| 91免费观看视频| 日韩激情小视频| 香蕉成人伊视频在线观看| 久久精品五月天| 欧美一区二区在线免费播放| 欧美熟妇交换久久久久久分类| 亚洲人成免费电影| 国产黄a三级三级三级av在线看| 欧美精品18videos性欧美| 韩国精品主播一区二区在线观看 | 亚洲成人一区二区三区| 一本一本久久a久久综合精品| 男女啪啪免费视频网站| 日韩电影在线一区| 黑人性生活视频| 久久久久久久av麻豆果冻| 欧美一级特黄高清视频| 午夜不卡在线视频| 91久久精品无码一区二区| 亚洲第一天堂av| av电影在线观看网址| 久久久久国色av免费观看性色| 日本在线中文字幕一区二区三区| 51国产成人精品午夜福中文下载| 亚州综合一区| 加勒比海盗1在线观看免费国语版| 亚洲欧美视频| 深夜视频在线观看| 国产精品美女久久久久久久久久久| 色播视频在线播放| 91麻豆精品91久久久久久清纯| 免费在线黄色网址| 欧美黄色片视频| 9.1麻豆精品| 婷婷亚洲婷婷综合色香五月| 亚洲高清网站| 国产老头和老头xxxx×| 国产欧美日韩久久| 日本va欧美va国产激情| 日韩欧美亚洲国产另类| 在线观看免费黄视频| 欧美在线视频免费观看| 国产乱人伦丫前精品视频| 欧洲精品视频在线| 美女精品自拍一二三四| 蜜桃精品一区二区| 亚洲一区二区三区三| 国产精品视频一区二区三区,| 亚洲欧美日韩久久久久久 | 午夜伊人狠狠久久| 国内老熟妇对白hdxxxx| 最近的2019中文字幕免费一页| 中文av在线全新| 精品伦理一区二区三区| 狠狠爱综合网| 熟女人妻一区二区三区免费看| 亚洲人成网站精品片在线观看| 中文字幕av免费观看| 中文国产亚洲喷潮| 日韩国产网站| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲视频精品| 精品无码人妻少妇久久久久久| 一区二区高清视频在线观看| 99久久亚洲精品日本无码| 久久久精品久久久久| 欧美激情福利| 2025韩国大尺度电影| 激情五月激情综合网| 极品久久久久久| 日韩欧美一二三| 动漫一区二区| 国产精品一区二区免费| 亚洲黄色三级| 中文字幕一区三区久久女搜查官| 黑人巨大精品欧美一区二区一视频 | xxxx 国产| 亚洲精品在线观| 日韩激情电影| 日韩亚洲欧美精品| 久久99国内精品| 免费人成年激情视频在线观看| 91精品在线麻豆| 美女航空一级毛片在线播放| 国产私拍一区| 日本资源在线| 久久久美女艺术照精彩视频福利播放 | 色综合天天天天做夜夜夜夜做| 国产精品国产对白熟妇| 色一区二区三区| 欧美欧美午夜aⅴ在线观看| 国产精品自在自线| 噜噜噜狠狠夜夜躁精品仙踪林| 精品国产一区久久| 亚洲成年人专区| 免费成人在线电影| 亚洲成人一区二区| 国产玉足脚交久久欧美| 久操av在线| 国产欧美一区二区三区视频| 欧美在线1区| 一级特级黄色片| 在线亚洲高清视频| 成人影欧美片| 久久久久久一区| 久久国产精品色| 在线观看 中文字幕| 欧美性猛交xxxx免费看| 男人的天堂视频在线| 加勒比一区二区三区在线| 波多野结衣中文字幕一区二区三区| 国产精品视频1区| 国产精品国产三级国产aⅴ| 亚洲成人网av| 777午夜精品电影免费看| 日韩精品福利片午夜免费观看| 99免费精品在线观看| 亚洲国产无线乱码在线观看| 欧美国产激情18| av亚洲在线观看| 中国免费黄色片| 6080午夜不卡| 色婷婷综合久久久中字幕精品久久| 男女h黄动漫啪啪无遮挡软件| 26uuu亚洲综合色欧美|