中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

wordpress整站源碼網(wǎng)絡營銷的目的是什么

wordpress整站源碼,網(wǎng)絡營銷的目的是什么,網(wǎng)站如何優(yōu)化,東莞網(wǎng)站設計定做目錄 國際網(wǎng)絡通信協(xié)議標準: 1.OSI協(xié)議: 2.TCP/IP協(xié)議模型: 應用層 : 傳輸層: 網(wǎng)絡層: IPV4協(xié)議 IP地址 IP地址的劃分: 公有地址 私有地址 MA…

目錄

國際網(wǎng)絡通信協(xié)議標準:

1.OSI協(xié)議:

?2.TCP/IP協(xié)議模型:

?應用層??:

?傳輸層:

??網(wǎng)絡層:?????????????IPV4協(xié)議????????????IP地址

?IP地址的劃分:????????????公有地址????????????私有地址

????????MAC地址:

????????端口號:

?UDP編程

1.套接字:

2.流程??

3.函數(shù)接口

(1)?socket

?(2)sendto?

(3)?inet_addr

(4)?htons?

(5)?bind?

(6)recvfrom?

?主機作為發(fā)送端

主機作為接收端


?網(wǎng)絡:
協(xié)議:通信雙方約定的一套標準?

國際網(wǎng)絡通信協(xié)議標準:

1.OSI協(xié)議:

????????應用層??????????發(fā)送的數(shù)據(jù)內(nèi)容
????????表示層??????????數(shù)據(jù)是否加密
????????會話層??????????是否建立會話連接
????????傳輸層??????????數(shù)據(jù)傳輸?shù)姆绞?br /> ????????網(wǎng)絡層??????????數(shù)據(jù)的路由
????????數(shù)據(jù)鏈路層??????局域網(wǎng)內(nèi)部通信
????????物理層??????????物理介質(zhì)的連接

?2.TCP/IP協(xié)議模型:

?
????????應用層??????????發(fā)送的數(shù)據(jù)內(nèi)容
????????傳輸層??????????數(shù)據(jù)傳輸?shù)姆绞?br /> ????????網(wǎng)絡層??????????數(shù)據(jù)由一臺主機到達另一臺主機
????????網(wǎng)絡接口層??????物理介質(zhì)連接?

?應用層??:


????????????FTP?????文件傳輸協(xié)議????
????????????TFTP????簡單文件傳輸協(xié)議
????????????HTTP????超文本傳輸協(xié)議
????????????HTTPS???安全超文本傳輸協(xié)議
????????????SMTP????簡單郵件傳輸協(xié)議
????????????TELNET??網(wǎng)絡終端登錄協(xié)議
????????????DNS?????域名系統(tǒng)
????????????..?

?傳輸層:

????TCP?????傳輸控制協(xié)議
? ? ?UDP?????用戶數(shù)據(jù)報協(xié)議

????????????UDP:不安全、不可靠的傳輸方式
?????????????????UDP機制簡單
?????????????????UDP占用的資源開銷比較小
????????????TCP:安全、可靠的傳輸方式
?????????????????TCP機制復雜
?????????????????TCP占用的資源開銷比較大?
????????????????????三次握手建立連接,確認雙方能夠通信
????????????????????通信過程中保障數(shù)據(jù)傳輸?shù)耐暾?br /> ????????????????????四次揮手斷開連接,確保數(shù)據(jù)傳輸?shù)耐暾?/p>

??網(wǎng)絡層:?
????????????IPV4協(xié)議
????????????IP地址

????????????管理員IP地址形式:192.168.0.167
????????????內(nèi)存IP地址形式:??11000000.10101000.00000000.10100111

????????????IP地址?=?網(wǎng)絡位?+?主機位?
????????????網(wǎng)絡位:IP地址所屬的網(wǎng)段(局域網(wǎng)的編號)
????????????主機位:局域網(wǎng)中的第幾臺主機
????????????網(wǎng)段號:網(wǎng)絡位不變,主機位全為0?
????????????廣播號:網(wǎng)絡位不變,?主機位全為1?
????????????子網(wǎng)掩碼:每個IP地址都會搭配一個子網(wǎng)掩碼,用來區(qū)分IP地址的網(wǎng)絡位及主機位
?????????????????????子網(wǎng)掩碼展開成二進制,1對應的部分就是IP地址的網(wǎng)絡位,0對應的部分就是IP地址的主機位
????????????192.168.0.167
????????????255.255.255.0
????????????11000000.10101000.00000000.10100111
????????????11111111.11111111.11111111.00000000

? ? ? ? ? ? 網(wǎng)段號192.168.0.0
? ? ? ? ? ? 廣播號192.168.0.255

?IP地址的劃分:
????????????公有地址
????????????私有地址

????????????A類:1.0.0.0?~?126.255.255.255
????????????????子網(wǎng)掩碼:255.0.0.0?
????????????????管理超大規(guī)模型網(wǎng)絡
????????????????私有地址:10.0.0.0?~?10.255.255.255

????????????B類:128.0.0.0?~?191.255.255.255
????????????????子網(wǎng)掩碼:255.255.0.0?
????????????????管理大中規(guī)模型網(wǎng)絡
????????????????私有地址:172.16.0.0?-?172.31.255.255

????????????C類:192.0.0.0?~?223.255.255.255
????????????????子網(wǎng)掩碼:255.255.255.0
????????????????管理中小規(guī)模型網(wǎng)絡
????????????????私有地址:192.168.0.0?~?192.168.255.255

????????????D類:224.0.0.0?~?239.255.255.255
????????????????用于組播:255.255.255.0

????????????E類:240.0.0.0?~?255.255.255.255
????????????????用于實驗和研究:255.255.255.0

????????MAC地址:

?設備自帶網(wǎng)卡的地址(該地址是唯一的)


????????端口號:

?找到同一臺主機不同的應用程序

?UDP編程

1.套接字:


????????實現(xiàn)Linux系統(tǒng)下的網(wǎng)絡通信
????????套接字:一次通信對象的抽象

2.流程??

發(fā)送端流程:1.創(chuàng)建套接字
???????????????2.發(fā)送信息
???????????????3.關閉套接字

????接收端流程:?1.創(chuàng)建套接字???????
????????????????2.綁定IP和Port
????????????????3.接收信息?
????????????????4.關閉套接字

3.函數(shù)接口

(1)?socket

socket?
??????int?socket(int?domain,?int?type,?int?protocol);
??????功能:
????????創(chuàng)建套接字
??????參數(shù):
????????domain:?AF_INET?表示IPV4協(xié)議
????????type:套接字類型
????????????SOCK_STREAM:流式套接字
????????????SOCK_DGRAM:數(shù)據(jù)報套接字
????????????SOCK_RAW:原始套接字
????????protocol:
????????????TCP和UDP協(xié)議:0
??????返回值:??
????????成功返回用來通信的文件描述符
????????失敗返回-1?
?

?(2)sendto?

sendto?
??????ssize_t?sendto(int?sockfd,?const?void?*buf,?size_t?len,?int?flags,
??????????????????????const?struct?sockaddr?*dest_addr,?socklen_t?addrlen);
??????功能:
????????發(fā)送信息
??????參數(shù):
????????sockfd:套接字文件描述符
????????buf:發(fā)送數(shù)據(jù)空間首地址
????????len:發(fā)送數(shù)據(jù)長度
????????flags:發(fā)送屬性?默認為0?
????????dest_addr:目標地址存放空間首地址
????????addrlen:目的地址的長度

struct?sockaddr_in?{
????????????sa_family_t????sin_family;?/*?address?family:?AF_INET?*/
????????????in_port_t??????sin_port;???/*?port?in?network?byte?order?*/
????????????struct?in_addr?sin_addr;???/*?internet?address?*/
????????};

????????/*?Internet?address.?*/
????????struct?in_addr?{
????????????uint32_t???????s_addr;?????/*?address?in?network?byte?order?*/
????????};

??????返回值:
????????成功返回發(fā)送字節(jié)數(shù)
????????失敗返回-1?

??如果sendto對應的套接字沒有綁定端口,則sendto綁定一個隨機端口完成發(fā)送功能

(3)?inet_addr

inet_addr
??????in_addr_t?inet_addr(const?char?*cp);
??????功能:
????????將字符串的IP地址轉(zhuǎn)換為32位的地址類型

(4)?htons?

htons?
??????uint16_t?htons(uint16_t?hostshort);
??????功能:????
????????將本地字節(jié)序(小端)轉(zhuǎn)換成網(wǎng)絡大端字節(jié)序
?

(5)?bind?

bind?
??????int?bind(int?sockfd,?const?struct?sockaddr?*addr,?socklen_t?addrlen);
??????功能:
????????將套接字與IP地址和端口進行綁定
??????參數(shù):
????????addr:綁定地址結(jié)構(gòu)體空間首地址
????????addrlen:綁定地址空間大小
??????返回值:
????????成功返回0?
????????失敗返回-1?
??????注意:
????????只能綁定自己的IP地址

(6)recvfrom?

?ssize_t?recvfrom(int?sockfd,?void?*buf,?size_t?len,?int?flags,
????????????????????????struct?sockaddr?*src_addr,?socklen_t?*addrlen);
??????功能:
????????接收信息
??????參數(shù):
????????sockfd:套接字文件描述符
????????buf:接收數(shù)據(jù)空間首地址
????????len:接收數(shù)據(jù)長度
????????flags:接收的屬性?默認為0?
????????src_addr:存放發(fā)送方地址空間的地址
????????addrlen:?要接收的發(fā)送方地址的長度
??????返回值:
????????成功返回實際接收字節(jié)數(shù)
????????失敗返回-1?

?練習一:

主機作為發(fā)送端

#include "../head.h"
//主機作為發(fā)送方
int main()
{int sockfd=0;ssize_t nsize=0;struct sockaddr_in recvaddr;struct sockaddr_in sendaddr;//創(chuàng)建用來通信的套接字sockfd=socket(AF_INET,SOCK_DGRAM,0);//AF_INET:IPV4協(xié)議族,SOCK_DGRAM:UDP數(shù)據(jù)報套接字if(sockfd==-1){perror("failed to socket");return -1;}//將發(fā)送端套接字與IP地址和端口號綁定sendaddr.sin_family=AF_INET;sendaddr.sin_port=htons(30000);sendaddr.sin_addr.s_addr=inet_addr("192.168.0.185");bind(sockfd,(struct sockaddr *)&sendaddr,sizeof(sendaddr));//為目的地址賦值recvaddr.sin_family=AF_INET;//協(xié)議族為IPV4recvaddr.sin_port=htons(8080);//端口號( htons() 將本地字節(jié)序(小端)轉(zhuǎn)換為網(wǎng)絡字節(jié)序(大端))(發(fā)送給wltszs4.3.29網(wǎng)絡調(diào)試助手)recvaddr.sin_addr.s_addr=inet_addr("192.168.0.135");//IP地址( inet_addr() 將字符串類型轉(zhuǎn)換為二進制地址類型)//向目的地址發(fā)送數(shù)據(jù)nsize=sendto(sockfd,"66666666666",12,0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));//注意強制類型轉(zhuǎn)換if(nsize==-1){perror("failed to sendto");return 0;}printf("發(fā)送成功\n");//關閉套接字close(sockfd);return 0;
}

主機作為接收端

#include "../head.h"
int main()
{int sockfd=0;int ret=0;char tmpbuff[200]={0};ssize_t nsize=0;struct sockaddr_in recvaddr;//創(chuàng)建套接字sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){perror("failed to socket");return -1;}//將套接字和IP地址與端口號綁定recvaddr.sin_family=AF_INET;recvaddr.sin_port=htons(20000);recvaddr.sin_addr.s_addr=inet_addr("192.168.0.185");ret=bind(sockfd,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(ret==-1){perror("failed to bind");return 0;}//接受數(shù)據(jù)nsize=recvfrom(sockfd,tmpbuff,sizeof(tmpbuff),0,NULL,NULL);if(nsize==-1){perror("failed to recvfrom");return 0;}//打印數(shù)據(jù)printf("接收到字節(jié)數(shù):%ld,內(nèi)容為:%s\n",nsize,tmpbuff);//關閉套接字close(sockfd);return 0;
}

練習二:利用UDP編程發(fā)送文件

發(fā)送端send.c

#include "../head.h"
int main()
{int sockfd;int ret=0;FILE *fp=NULL;struct sockaddr_in recvaddr;char readbuff[1024]={0};size_t size=0;ssize_t nsize=0;//創(chuàng)建套接字sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){perror("failed to socket");return -1;}//為目的地址賦值recvaddr.sin_family=AF_INET;recvaddr.sin_port=htons(30000);recvaddr.sin_addr.s_addr=inet_addr("192.168.0.187");//輸入要發(fā)送的文件名printf("請輸入要發(fā)送的文件名:");fgets(readbuff,sizeof(readbuff),stdin);readbuff[strlen(readbuff)-1]='\0';//打開該文件fp=fopen(readbuff,"r");if(fp==NULL){perror("failed to fopen send.txt");return -1;}//發(fā)送文件名nsize=sendto(sockfd,readbuff,strlen(readbuff)+1,0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(nsize==-1){perror("failed to sendto");return -1;}
//發(fā)送文件內(nèi)容
while(1)
{size=fread(readbuff,1,sizeof(readbuff),fp);if(size<=0){break;}nsize=sendto(sockfd,readbuff,size,0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(nsize==-1){perror("failed to sendto");return -1;}
}
//發(fā)送文件結(jié)尾關閉標志sprintf(readbuff,".quit");nsize=sendto(sockfd,readbuff,size,0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(nsize==-1){perror("failed to sendto");return -1;}//關閉套接字和文件close(sockfd);fclose(fp);return 0;  }

接收文件端

#include "../head.h"
int main()
{int sockfd;int ret=0;FILE *fp=NULL;char filename[100]={0};char tmpbuff[1024]={0};struct sockaddr_in recvaddr;char readbuff[1024]={0};size_t size=0;ssize_t nsize=0;//創(chuàng)建套接字sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){perror("failed to socket");return -1;}//綁定接收IP地址和套接字,端口號recvaddr.sin_family=AF_INET;recvaddr.sin_port=htons(30000);recvaddr.sin_addr.s_addr=inet_addr("192.168.0.187");bind(sockfd,(struct sockaddr *)&recvaddr,sizeof(recvaddr));//接收文件名nsize=recvfrom(sockfd,filename,sizeof(filename),0,NULL,NULL);if(nsize==-1){perror("failed to recvfrom");return -1;}//創(chuàng)建文件fp=fopen(filename,"w");if(fp==NULL){perror("failed to fopen");return -1;}//接收文件內(nèi)容while (1){nsize=recvfrom(sockfd,tmpbuff,sizeof(tmpbuff),0,NULL,NULL);if(nsize==0){break;}if(!strcmp(tmpbuff,".quit")){break;}fwrite(tmpbuff,nsize,1,fp);}//關閉套接字和文件close(sockfd);fclose(fp);return 0;  }

練習三:利用UDP編程實現(xiàn)聊天功能

1.(進程實現(xiàn))

send.c

#include "../head.h"
int main()
{pid_t pid;struct sockaddr_in sendaddr;struct sockaddr_in recvaddr;char tmpbuff[100]={0};ssize_t size_send;ssize_t size_recv;int sockfd=0;sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){perror("failed to socket");return -1;}recvaddr.sin_family=AF_INET;recvaddr.sin_port=htons(30000);recvaddr.sin_addr.s_addr=inet_addr("192.168.0.187");//第一次發(fā)送是為了建立連接,數(shù)據(jù)可隨機發(fā)送,不打印size_send = sendto(sockfd,"hello",6,0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(size_send==-1){perror("failed to sendto");return -1;}pid=fork();if(pid==-1){perror("failed to fork");return -1;}if(pid==0){   while (1){memset(tmpbuff,0,sizeof(tmpbuff));fgets(tmpbuff,sizeof(tmpbuff),stdin);tmpbuff[strlen(tmpbuff)-1]='\0';size_send=sendto(sockfd,tmpbuff,strlen(tmpbuff),0,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(size_send==-1){perror("failed to sendto");return -1;}if(!strcmp(tmpbuff,".quit")){break;}}kill(getppid(),SIGKILL);}else if(pid>0){while(1){memset(tmpbuff,0,sizeof(tmpbuff));size_recv = recvfrom(sockfd,tmpbuff,sizeof(tmpbuff),0,NULL,NULL);if(size_recv==-1){perror("failed to recvfrom");return -1;}if(!strcmp(tmpbuff,".quit")){break;}printf("RECV:%s\n",tmpbuff);}kill(pid,SIGKILL);}close(sockfd);return 0;}

recv.c

#include "../head.h"
int main()
{pid_t pid;struct sockaddr_in sendaddr;struct sockaddr_in recvaddr;size_t size_send;size_t size_recv;char tmpbuff[100]={0};socklen_t addrlen=sizeof(sendaddr);int ret=0;int sockfd=0;sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){perror("failed to socket");return -1;}recvaddr.sin_family=AF_INET;recvaddr.sin_port=htons(30000);recvaddr.sin_addr.s_addr=inet_addr("192.168.0.187");ret=bind(sockfd,(struct sockaddr *)&recvaddr,sizeof(recvaddr));if(ret==-1){perror("failed to bind");return -1;}
//第一次接收是為了建立連接,數(shù)據(jù)不打印size_recv = recvfrom(sockfd,tmpbuff,sizeof(tmpbuff),0,(struct sockaddr *)&sendaddr,&addrlen);if(size_recv==-1){perror("failed to recvfrom");return -1;}pid=fork();if(pid==-1){perror("failed to fork");return -1;}if(pid==0){while(1){memset(tmpbuff,0,sizeof(tmpbuff));size_recv = recvfrom(sockfd,tmpbuff,sizeof(tmpbuff),0,NULL,NULL);if(size_recv==-1){perror("failed to sendto");return -1;}if(!strcmp(tmpbuff,".quit")){break;}printf("RECV:%s\n",tmpbuff);}kill(getppid(),SIGKILL);}else if(pid>0){while (1){memset(tmpbuff,0,sizeof(tmpbuff));fgets(tmpbuff,sizeof(tmpbuff),stdin);tmpbuff[strlen(tmpbuff)-1]='\0';size_send=sendto(sockfd,tmpbuff,strlen(tmpbuff),0,(struct sockaddr *)&sendaddr,sizeof(sendaddr));if(size_send==-1){perror("failed to sendto");return -1;}if(!strcmp(tmpbuff,".quit")){break;}}kill(pid,SIGKILL);}close(sockfd);return 0;}

2.(線程實現(xiàn))

send.c

#include "../head.h"int sockfd = 0;
pthread_t tid1;
pthread_t tid2;
struct sockaddr_in recvaddr;void *thread1(void *arg)
{char tmpbuff[1024] = {0};ssize_t nsize = 0;while (1){memset(tmpbuff, 0, sizeof(tmpbuff));fgets(tmpbuff, sizeof(tmpbuff), stdin);tmpbuff[strlen(tmpbuff)-1] = '\0';nsize = sendto(sockfd, tmpbuff, strlen(tmpbuff), 0, (struct sockaddr *)&recvaddr, sizeof(recvaddr));if (-1 == nsize){perror("fail to sendto");return NULL;}if (!strcmp(tmpbuff, ".quit")){break;}}pthread_cancel(tid2);return NULL;
}void *thread2(void *arg)
{  char tmpbuff[1024] = {0};ssize_t nsize = 0;while (1){memset(tmpbuff, 0, sizeof(tmpbuff));nsize = recvfrom(sockfd, tmpbuff, sizeof(tmpbuff), 0, NULL, NULL);if (-1 == nsize){perror("fail to recvfrom");return NULL;}if (!strcmp(tmpbuff, ".quit")){break;}printf("RECV:%s\n", tmpbuff);}pthread_cancel(tid1);return NULL;
}int main(void)
{//1.創(chuàng)建套接字char tmpbuff[1024] = {"hello"};ssize_t nsize = 0;recvaddr.sin_family = AF_INET;recvaddr.sin_port = htons(RECV_PORT);recvaddr.sin_addr.s_addr = inet_addr(RECV_IP);sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == sockfd){perror("fail to socket");return -1;}//2.發(fā)送一次nsize = sendto(sockfd, tmpbuff, strlen(tmpbuff), 0, (struct sockaddr *)&recvaddr, sizeof(recvaddr));if (-1 == nsize){perror("fail to sendto");return -1;}//3.創(chuàng)建兩個線程pthread_create(&tid1, NULL, thread1, NULL);pthread_create(&tid2, NULL, thread2, NULL);pthread_join(tid1, NULL);pthread_join(tid2, NULL);close(sockfd);return 0;
}

recv.c

#include "../head.h"int sockfd = 0;
pthread_t tid1;
pthread_t tid2;
struct sockaddr_in recvaddr;
struct sockaddr_in sendaddr;void *thread1(void *arg)
{char tmpbuff[1024] = {0};ssize_t nsize = 0;while (1){memset(tmpbuff, 0, sizeof(tmpbuff));fgets(tmpbuff, sizeof(tmpbuff), stdin);tmpbuff[strlen(tmpbuff)-1] = '\0';nsize = sendto(sockfd, tmpbuff, strlen(tmpbuff), 0, (struct sockaddr *)&sendaddr, sizeof(sendaddr));if (-1 == nsize){perror("fail to sendto");return NULL;}if (!strcmp(tmpbuff, ".quit")){break;}}pthread_cancel(tid2);return NULL;
}void *thread2(void *arg)
{  char tmpbuff[1024] = {0};ssize_t nsize = 0;while (1){memset(tmpbuff, 0, sizeof(tmpbuff));nsize = recvfrom(sockfd, tmpbuff, sizeof(tmpbuff), 0, NULL, NULL);if (-1 == nsize){perror("fail to recvfrom");return NULL;}if (!strcmp(tmpbuff, ".quit")){break;}printf("RECV:%s\n", tmpbuff);}pthread_cancel(tid1);return NULL;
}int main(void)
{//1.創(chuàng)建套接字char tmpbuff[1024] = {"hello"};ssize_t nsize = 0;int ret = 0;socklen_t addrlen = sizeof(sendaddr);recvaddr.sin_family = AF_INET;recvaddr.sin_port = htons(RECV_PORT);recvaddr.sin_addr.s_addr = inet_addr(RECV_IP);sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == sockfd){perror("fail to socket");return -1;}ret = bind(sockfd, (struct sockaddr *)&recvaddr, sizeof(recvaddr));if (-1 == ret){perror("fail to bind");return -1;}//2.接收一次nsize = recvfrom(sockfd, tmpbuff, sizeof(tmpbuff), 0, (struct sockaddr *)&sendaddr, &addrlen);if (-1 == nsize){perror("fail to recvfrom");return -1;}//3.創(chuàng)建兩個線程pthread_create(&tid1, NULL, thread1, NULL);pthread_create(&tid2, NULL, thread2, NULL);pthread_join(tid1, NULL);pthread_join(tid2, NULL);close(sockfd);return 0;
}

http://www.risenshineclean.com/news/51468.html

相關文章:

  • 南通高端網(wǎng)站建設開發(fā)百度站長資源平臺
  • access做網(wǎng)站數(shù)據(jù)庫能有多大容量百度競價什么意思
  • 如何訪問云南建設廳網(wǎng)站網(wǎng)站服務器是什么意思
  • 濟南網(wǎng)站建設企業(yè)談談你對網(wǎng)絡營銷的看法
  • 兩個網(wǎng)站共用一個空間搜索引擎排名中國
  • 太原網(wǎng)站建設與維護做網(wǎng)站的平臺
  • 廣州的十七做網(wǎng)站百度首頁優(yōu)化排名
  • 藍色政府網(wǎng)站模版網(wǎng)站運營推廣方式
  • wordpress 多個站點深圳網(wǎng)站設計實力樂云seo
  • 什么網(wǎng)站做旅行計劃seo運營人士揭秘
  • 微信公眾號怎樣做淘客網(wǎng)站重慶網(wǎng)站搭建
  • 上海企業(yè)名錄地址電話seo網(wǎng)絡推廣
  • 桂林億星網(wǎng)絡科技公司百度seo排名優(yōu)化是什么
  • 訪問網(wǎng)站提示輸入用戶名密碼網(wǎng)絡推廣營銷培訓機構(gòu)
  • 青海西寧網(wǎng)站建設公司電腦編程培訓學校
  • 龍華做棋牌網(wǎng)站建設網(wǎng)站收錄服務
  • 建設科技信息+網(wǎng)站建設外貿(mào)網(wǎng)站建設
  • java開發(fā)門戶網(wǎng)站搜索引擎入口google
  • 縣城做信息網(wǎng)站賺不賺錢搜索關鍵詞
  • 學做網(wǎng)站論壇vip賬號破解360手機助手
  • 企業(yè)型網(wǎng)站建設咨詢電話百度搜索引擎網(wǎng)站
  • 獨立網(wǎng)站開發(fā)者兼職網(wǎng)站seo外包公司報價
  • 德州做網(wǎng)站的公司有哪些千萬別在百度上搜別人名字
  • 南昌優(yōu)化網(wǎng)站服務哪里有免費的網(wǎng)站推廣
  • 織夢做的網(wǎng)站怎么加彈窗哪里有軟件培訓班
  • 免費域名網(wǎng)站推薦關鍵詞優(yōu)化師
  • 怎么做新聞網(wǎng)站網(wǎng)站友情鏈接購買
  • wordpress收費破解模板搜索優(yōu)化seo
  • 武漢疫情最新消息今天佛山百度快照優(yōu)化排名
  • 莆田建站培訓seo實戰(zhàn)密碼第四版pdf