欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于SMB協(xié)議的多通道實(shí)現(xiàn)方法及裝置與流程

文檔序號(hào):11253966閱讀:1224來(lái)源:國(guó)知局
一種基于SMB協(xié)議的多通道實(shí)現(xiàn)方法及裝置與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法及裝置。



背景技術(shù):

在存儲(chǔ)系統(tǒng)中,服務(wù)器和客戶端一般都由雙鏈路、多個(gè)網(wǎng)口冗余配置。同一客戶端與服務(wù)器同一時(shí)刻只能建立一個(gè)子進(jìn)程,通過(guò)該子進(jìn)程進(jìn)行一個(gè)會(huì)話。

隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,各種通信協(xié)議也逐漸發(fā)展起來(lái),如smb協(xié)議。在smb協(xié)議中提出了多通道的概念,使得同一客戶端與服務(wù)器同時(shí)進(jìn)行多個(gè)會(huì)話成為可能。

但是如何基于smb協(xié)議實(shí)現(xiàn)多通道,提高網(wǎng)絡(luò)連接的可用性,提升服務(wù)器性能,是目前本領(lǐng)域技術(shù)人員亟需解決的技術(shù)問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是提供一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法及裝置,以提高了網(wǎng)絡(luò)連接的可用性,提升了服務(wù)器性能。

為解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案:

一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法,應(yīng)用于支持smb協(xié)議的服務(wù)器,所述方法包括:

在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到所述客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)所述第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程;

接收所述客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求;

通過(guò)所述第二子進(jìn)程將所述第二會(huì)話的相關(guān)信息發(fā)送給所述第一子進(jìn)程;

通過(guò)所述第一子進(jìn)程響應(yīng)所述第二建立請(qǐng)求,建立第二會(huì)話。

在本發(fā)明的一種具體實(shí)施方式中,通過(guò)以下步驟建立所述第一會(huì)話:

接收所述客戶端發(fā)送的第一連接請(qǐng)求;

根據(jù)所述第一連接請(qǐng)求,創(chuàng)建所述第一子進(jìn)程;

基于所述第一子進(jìn)程,建立所述第一會(huì)話。

在本發(fā)明的一種具體實(shí)施方式中,在所述創(chuàng)建第一子進(jìn)程之后,還包括:

通過(guò)所述第一子進(jìn)程與所述客戶端進(jìn)行smb協(xié)議第一協(xié)商,所述第一協(xié)商中攜帶所述服務(wù)器支持多通道的通告信息。

在本發(fā)明的一種具體實(shí)施方式中,在所述創(chuàng)建第二子進(jìn)程之后,還包括:

通過(guò)所述第二子進(jìn)程與所述客戶端進(jìn)行smb協(xié)議第二協(xié)商。

在本發(fā)明的一種具體實(shí)施方式中,在所述通過(guò)所述第二子進(jìn)程將所述第二會(huì)話的相關(guān)信息發(fā)送給所述第一子進(jìn)程之后,還包括:

退出所述第二子進(jìn)程。

一種基于smb協(xié)議的多通道實(shí)現(xiàn)裝置,應(yīng)用于支持smb協(xié)議的服務(wù)器,所述裝置包括:

子進(jìn)程創(chuàng)建模塊,用于在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到所述客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)所述第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程;

建立請(qǐng)求接收模塊,用于接收所述客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求;

信息發(fā)送模塊,用于通過(guò)所述第二子進(jìn)程將所述第二會(huì)話的相關(guān)信息發(fā)送給所述第一子進(jìn)程;

第二會(huì)話建立模塊,用于通過(guò)所述第一子進(jìn)程響應(yīng)所述第二建立請(qǐng)求,建立第二會(huì)話。

在本發(fā)明的一種具體實(shí)施方式中,還包括第一會(huì)話建立模塊,用于通過(guò)以下步驟建立所述第一會(huì)話:

接收所述客戶端發(fā)送的第一連接請(qǐng)求;

根據(jù)所述第一連接請(qǐng)求,創(chuàng)建所述第一子進(jìn)程;

基于所述第一子進(jìn)程,建立所述第一會(huì)話。

在本發(fā)明的一種具體實(shí)施方式中,所述第一會(huì)話建立模塊,還用于:

在所述創(chuàng)建第一子進(jìn)程之后,通過(guò)所述第一子進(jìn)程與所述客戶端進(jìn)行smb協(xié)議第一協(xié)商,所述第一協(xié)商中攜帶所述服務(wù)器支持多通道的通告信息。

在本發(fā)明的一種具體實(shí)施方式中,還包括協(xié)商模塊,用于:

在所述創(chuàng)建第二子進(jìn)程之后,通過(guò)所述第二子進(jìn)程與所述客戶端進(jìn)行smb協(xié)議第二協(xié)商。

在本發(fā)明的一種具體實(shí)施方式中,還包括子進(jìn)程退出模塊,用于:

在所述通過(guò)所述第二子進(jìn)程將所述第二會(huì)話的相關(guān)信息發(fā)送給所述第一子進(jìn)程之后,退出所述第二子進(jìn)程。

應(yīng)用本發(fā)明實(shí)施例所提供的技術(shù)方案,支持smb協(xié)議的服務(wù)器在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程,在接收到客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求后,通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程,通過(guò)第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話?;趕mb協(xié)議實(shí)現(xiàn)了多通道,客戶端與服務(wù)器通過(guò)多通道進(jìn)行會(huì)話,提高了網(wǎng)絡(luò)連接的可用性,提升了服務(wù)器性能。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例中基于smb協(xié)議的多通道實(shí)現(xiàn)方法的一種實(shí)施流程圖;

圖2為本發(fā)明實(shí)施例中基于smb協(xié)議的多通道實(shí)現(xiàn)方法的另一種實(shí)施流程圖;

圖3為本發(fā)明實(shí)施例中一種基于smb協(xié)議的多通道實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明實(shí)施例提供了一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法,該方法應(yīng)用于支持smb(servermessageblock)協(xié)議的服務(wù)器。在實(shí)際應(yīng)用中,該服務(wù)器中可以配置有多個(gè)網(wǎng)絡(luò)適配器,多個(gè)網(wǎng)絡(luò)適配器最好為同一規(guī)格,可以為不同品牌。例如,可以均為千兆網(wǎng)卡或者均為萬(wàn)兆網(wǎng)卡,或者可以采用具有rdma功能的萬(wàn)兆融合卡或者infiniband卡。

參見(jiàn)圖1所示,為本發(fā)明實(shí)施例所提供的一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法的實(shí)施流程圖,該方法可以包括以下步驟:

s110:在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程。

在本發(fā)明實(shí)施例中,客戶端為支持windowsserver2012或windows8以上系統(tǒng)的客戶端。

服務(wù)器可以與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話。具體的,可以通過(guò)以下步驟建立第一會(huì)話:

步驟一:接收客戶端發(fā)送的第一連接請(qǐng)求;

步驟二:根據(jù)第一連接請(qǐng)求,創(chuàng)建第一子進(jìn)程;

步驟三:基于第一子進(jìn)程,建立第一會(huì)話。

為便于描述,將上述三個(gè)步驟結(jié)合起來(lái)進(jìn)行說(shuō)明。

服務(wù)器在正常工作過(guò)程中,如果接收客戶端發(fā)送的第一連接請(qǐng)求,則可以根據(jù)該第一連接請(qǐng)求,創(chuàng)建第一子進(jìn)程。并基于第一子進(jìn)程建立第一會(huì)話。具體的,客戶端可以向第一子進(jìn)程發(fā)送針對(duì)第一會(huì)話的會(huì)話建立請(qǐng)求,第一子進(jìn)程響應(yīng)該會(huì)話建立請(qǐng)求,建立第一會(huì)話。

第一連接請(qǐng)求為客戶端向服務(wù)器發(fā)送的第一個(gè)連接請(qǐng)求,在客戶端發(fā)送第一連接請(qǐng)求之前,其與服務(wù)器之間不存在任何會(huì)話連接。

在本發(fā)明實(shí)施例中,在創(chuàng)建第一子進(jìn)程之后,服務(wù)器還可以通過(guò)第一子進(jìn)程與客戶端進(jìn)行smb協(xié)議第一協(xié)商,第一協(xié)商中攜帶服務(wù)器支持多通道的通告信息。在smb協(xié)議第一協(xié)商過(guò)程中,服務(wù)器告知客戶端其支持多通道。這樣客戶端可以再次或多次向服務(wù)器發(fā)送連接請(qǐng)求。

服務(wù)器在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到該客戶端發(fā)送的第二連接請(qǐng)求,則可以根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程。第二連接請(qǐng)求不同于第一連接請(qǐng)求,可以是相對(duì)于第一連接請(qǐng)求的第二個(gè)連接請(qǐng)求、第三個(gè)連接請(qǐng)求等。

s120:接收客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求。

在創(chuàng)建第二子進(jìn)程后,客戶端可以根據(jù)實(shí)際需要,向服務(wù)器發(fā)送針對(duì)第二會(huì)話的第二建立請(qǐng)求,服務(wù)器可以通過(guò)第二子進(jìn)程接收客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求。

在本發(fā)明的一個(gè)實(shí)施例中,在創(chuàng)建第二子進(jìn)程之后,服務(wù)器還可以通過(guò)第二子進(jìn)程與客戶端進(jìn)行smb協(xié)議第二協(xié)商。

s130:通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程。

服務(wù)器接收到第二建立請(qǐng)求后,可以通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程。第二會(huì)話的相關(guān)信息可以包括會(huì)話標(biāo)識(shí)sessionid和端口socket。

s140:通過(guò)第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話。

第一子進(jìn)程在接收到第二會(huì)話的相關(guān)信息后,響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話。第一子進(jìn)程可以通過(guò)創(chuàng)建工作線程異步處理io讀寫(xiě)請(qǐng)求和多個(gè)socket接口的數(shù)據(jù)收發(fā)。這樣,該客戶端的第二會(huì)話仍然通過(guò)第一子進(jìn)程建立,客戶端與服務(wù)器間通過(guò)單個(gè)子進(jìn)程異步io實(shí)現(xiàn)多通道,進(jìn)行會(huì)話。客戶端與服務(wù)器建立第一會(huì)話后,二者之間形成第一個(gè)通道,客戶端與服務(wù)器建立第二會(huì)話后,二者之間形成第二個(gè)通道,第二個(gè)通道后續(xù)的會(huì)話處理和第一個(gè)通道的會(huì)話處理均由第一子進(jìn)程處理,當(dāng)通道多于兩個(gè)時(shí),其他通道后續(xù)的會(huì)話處理可以參照第二個(gè)通道的創(chuàng)建流程,全部由一個(gè)子進(jìn)程處理??梢蕴岣呖蛻舳送掏铝?,提高服務(wù)器的網(wǎng)絡(luò)故障轉(zhuǎn)移能力。

在實(shí)際應(yīng)用中,客戶端可以決定使用哪個(gè)連接進(jìn)行會(huì)話,會(huì)話在至少存在一個(gè)連接時(shí)有效。服務(wù)器在處理i/o操作時(shí)可以由工作線程處理,在多通道的網(wǎng)絡(luò)收發(fā)操作可以通過(guò)異步處理,充分發(fā)揮服務(wù)器多cpu和網(wǎng)卡的rss性能。

在本發(fā)明的一個(gè)實(shí)施例中,通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程之后,可以退出第二子進(jìn)程。避免第二子進(jìn)程占用過(guò)多資源。

需要說(shuō)明的是,在本發(fā)明實(shí)施例各步驟中的客戶端均表示同一客戶端。

應(yīng)用本發(fā)明實(shí)施例所提供的方法,支持smb協(xié)議的服務(wù)器在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程,在接收到客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求后,通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程,通過(guò)第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話?;趕mb協(xié)議實(shí)現(xiàn)了多通道,客戶端與服務(wù)器通過(guò)多通道進(jìn)行會(huì)話,提高了網(wǎng)絡(luò)連接的可用性,提升了服務(wù)器性能。

如圖2所示,為本發(fā)明實(shí)施例的一種具體示例,client為客戶端、child1為第一子進(jìn)程、child2為第二子進(jìn)程,主要流程如下:

客戶端向服務(wù)器的主smbd發(fā)送連接請(qǐng)求(connect);

主smbd創(chuàng)建第一子進(jìn)程(fork);

服務(wù)器通過(guò)第一子進(jìn)程與客戶端進(jìn)行smb協(xié)議協(xié)商(negotiate);

客戶端向第一子進(jìn)程發(fā)送針對(duì)第一會(huì)話的第一建立請(qǐng)求(sessionsetup);

第一子進(jìn)程響應(yīng)第一建立請(qǐng)求,建立第一會(huì)話;

客戶端再次向服務(wù)器的主smbd發(fā)送連接請(qǐng)求(connect);

主smbd創(chuàng)建第二子進(jìn)程(fork);

服務(wù)器通過(guò)第二子進(jìn)程與客戶端進(jìn)行smb協(xié)議協(xié)商(negotiate);

客戶端向第二子進(jìn)程發(fā)送針對(duì)第二會(huì)話的第二建立請(qǐng)求(sessionsetup(bind)req);

第二子進(jìn)程將第二會(huì)話的相關(guān)信息(sessionid、passsocket)發(fā)送給第一子進(jìn)程;

第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話(sessionsetup(bind)rep);

第二子進(jìn)程退出(die)。

相應(yīng)于上面的方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種基于smb協(xié)議的多通道實(shí)現(xiàn)裝置,應(yīng)用于支持smb協(xié)議的服務(wù)器,下文描述的一種基于smb協(xié)議的多通道實(shí)現(xiàn)裝置與上文描述的一種基于smb協(xié)議的多通道實(shí)現(xiàn)方法可相互對(duì)應(yīng)參照。

參見(jiàn)圖3所示,該裝置包括以下模塊:

子進(jìn)程創(chuàng)建模塊310,用于在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程;

建立請(qǐng)求接收模塊320,用于接收客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求;

信息發(fā)送模塊330,用于通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程;

第二會(huì)話建立模塊340,用于通過(guò)第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話。

應(yīng)用本發(fā)明實(shí)施例所提供的裝置,支持smb協(xié)議的服務(wù)器在與客戶端通過(guò)第一子進(jìn)程建立第一會(huì)話之后,如果接收到客戶端發(fā)送的第二連接請(qǐng)求,則根據(jù)第二連接請(qǐng)求,創(chuàng)建第二子進(jìn)程,在接收到客戶端發(fā)送的針對(duì)第二會(huì)話的第二建立請(qǐng)求后,通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程,通過(guò)第一子進(jìn)程響應(yīng)第二建立請(qǐng)求,建立第二會(huì)話?;趕mb協(xié)議實(shí)現(xiàn)了多通道,客戶端與服務(wù)器通過(guò)多通道進(jìn)行會(huì)話,提高了網(wǎng)絡(luò)連接的可用性,提升了服務(wù)器性能。

在本發(fā)明的一種具體實(shí)施方式中,還包括第一會(huì)話建立模塊,用于通過(guò)以下步驟建立第一會(huì)話:

接收客戶端發(fā)送的第一連接請(qǐng)求;

根據(jù)第一連接請(qǐng)求,創(chuàng)建第一子進(jìn)程;

基于第一子進(jìn)程,建立第一會(huì)話。

在本發(fā)明的一種具體實(shí)施方式中,第一會(huì)話建立模塊,還用于:

在創(chuàng)建第一子進(jìn)程之后,通過(guò)第一子進(jìn)程與客戶端進(jìn)行smb協(xié)議第一協(xié)商,第一協(xié)商中攜帶服務(wù)器支持多通道的通告信息。

在本發(fā)明的一種具體實(shí)施方式中,還包括協(xié)商模塊,用于:

在創(chuàng)建第二子進(jìn)程之后,通過(guò)第二子進(jìn)程與客戶端進(jìn)行smb協(xié)議第二協(xié)商。

在本發(fā)明的一種具體實(shí)施方式中,還包括子進(jìn)程退出模塊,用于:

在通過(guò)第二子進(jìn)程將第二會(huì)話的相關(guān)信息發(fā)送給第一子進(jìn)程之后,退出第二子進(jìn)程。

本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。

專(zhuān)業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的技術(shù)方案及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乐都县| 景宁| 和硕县| 东兰县| 台前县| 建德市| 丁青县| 龙南县| 兴安盟| 镇雄县| 双牌县| 商河县| 兴国县| 仁寿县| 新闻| 白玉县| 乐亭县| 镇原县| 鄂尔多斯市| 青阳县| 忻城县| 寿阳县| 阳泉市| 柞水县| 革吉县| 铜陵市| 赤水市| 崇州市| 沾益县| 浏阳市| 岚皋县| 襄樊市| 普安县| 上虞市| 门源| 宁乡县| 吴川市| 穆棱市| 海安县| 虞城县| 宝鸡市|