什么是SEM

什么是SEM,第1张

参考资料:

SEM是Search Engine Marketing的缩写,中文意思是搜索引擎营销。SEM搜索引擎营销是一种新的网络营销形式。SEM搜索引擎营销所做的就是全面而有效的利用搜索引擎来进行网络营销和推广。SEM搜索引擎营销追求最高的性价比,以最小的投入,获最大的来自搜索引擎的访问量,并产生商业价值。

网络SEM搜索引擎营销整合营销是整合网络资源,综全网站推广。互联网每天都有无数网站崛起,无数网站倒闭,侯庆龙认为,网络整合营销对其方法起到很大的作用。

一、SEM搜索引擎营销

搜索引擎营销是指搜索引擎优化、关键词广告、关键词竞价排名、搜索引擎定位广告搜索引擎在网络营销中的地位尤其重要,每天各行各业的人使用搜索引擎搜索信息。通过搜索引擎营销能直接带来流量与终端客户。

二、电子邮件营销方法

以电子邮件为产品资料、刊物、介绍等方向发送到电子邮件广告等。 基于用户许可的电子邮件营销的推广方式,此种方法对可以提醒用户对产品的了解。

三、资源合作营销方法

网站交换链接、交换广告、内容合作、信息推广、信息合作、用户资源合作等方式,正所谓“人人为我,我为人人”,合作共赢,利益共享,共同发展。

四、网络广告营销方法

网络广告是常用的网络营销方式之一,直接通过网站的广告位置进行投放推广,可以直接借用其他网络媒体推广,网站广告的优势在于:范围广、形式多样、适用性强、投放及时等优点,适合于网站初期营销推广。

五、 信息推广营销方法

把网站的信息发布相关行业网站中,利用用户在访问这些网站同时,了解你网站信息,达到凿壁借光,可以把信息推广发布到黄页、分类广告、论坛、博客网站、供求信息平台、行业网站等,这也是免费网站推广的常用方法之一。

六、 网址营销方法

通过把一些网站信息提交到相关网址导航中,来获取巨大流量,有些网络用户常进入一些网址导航中来查询相关网站信息,而且此种推广,对网站的作用也显而易见。

SEM搜索引擎营销的服务主要有4种方式:

一、 竞价排名,顾名思义就是网站付费后才能被搜索引擎收录并靠前排名,付费越高者排名越靠前;竞价排名服务,是由客户为自己的网页购买关键字排名,按点击计费的一种服务。客户可以通过调整每次点击付费价格,控制自己在特定关键字搜索结果中的排名;并可以通过设定不同的关键词捕捉到不同类型的的目标访问者。

而在国内最流行的点击付费搜索引擎有百度,雅虎和Google。值得一提的是即使是做了PPC(Pay Per Click,按照点击收费)付费广告和竞价排名,最好也应该对网站进行搜索引擎优化设计,并将网站登录到各大免费的搜索引擎中。

二、 购买关键词广告,即在搜索结果页面显示广告内容,实现高级定位投放,用户可以根据需要更换关键词,相当于在不同页面轮换投放广告;

三、 搜索引擎优化(SEO优化),就是通过对网站建设结构、关键字选择、网站内容规划进行调整和优化,使得网站在搜索结果中靠前。 搜索引擎优化(SEO优化)又包括网站内容优化、关键词优化、外部链接优化、内部链接优化、代码优化、图片优化、搜索引擎登录等。

PPC 为 Pay Per Click的缩写 PPC是英文Pay Per Click的缩写形式,其中文意思就是点击付费广告。

目前,SEM正处于发展阶段,它将成为今后专业网站乃至电子商务发展的必经之路。

SEO是属于SEM的一部分,是实现SEM搜索引擎营销搜索引擎整合营销的一种手段。

1、是指搜索引擎营销:英文Search Engine Marketing ,我们通常简称为“SEM”。

2、就是根据用户使用搜索引擎的方式利用用户检索信息的机会尽可能将营销信息传递给目标用户。简单来说,搜索引擎营销就是基于搜索引擎平台的网络营销,利用人们对搜索引擎的依赖和使用习惯,在人们检索信息的时候将信息传递给目标用户。

3、搜索引擎营销的基本思想是让用户发现信息,并通过点击进入网页,进一步了解所需要的信息。企业通过搜索引擎付费推广,让用户可以直接与公司客服进行交流、了解,实现交易。

扩展资料:

搜索引擎营销方法:

1、竞价排名,顾名思义就是网站付费后才能被搜索引擎收录,付费越高者排名越靠前;竞价排名服务,是由客户为自己的网页购买关键字排名,按点击计费的一种服务。客户可以通过调整每次点击付费价格,控制自己在特定关键字搜索结果中的排名。

2、而在国内最流行的点击付费搜索引擎有百度,雅虎和Google。值得一提的是即使是做了PPC(Pay Per Click,按照点击收费)付费广告和竞价排名,最好也应该对网站进行搜索引擎优化设计,并将网站登录到各大免费的搜索引擎中。

3、购买关键词广告,即在搜索结果页面显示广告内容,实现高级定位投放,用户可以根据需要更换关键词,相当于在不同页面轮换投放广告。

4、搜索引擎优化(SEO),就是通过对网站结构、关键字选择、网站内容规划进行调整和优化,使得网站在搜索结果中靠前。 搜索引擎优化(SEO)又包括网站内容优化、关键词优化、外部链接优化、内部链接优化、代码优化、图片优化、搜索引擎登录等。

5、PPC( Pay Per call,按照有效通话收费 ),比如:“TMTW来电付费”,就是根据有效电话的数量进行收费。购买竞价广告也被称做PPC。

参考资料:百度百科--sem

一、简介

共享内存为在多个进程之间共享和传递数据提供了一种有效的方式。

但它本身并未提供同步机制。

在实际编程中,可以使用

信号量

传递消息(使用管道或IPC消息),

生成信号,

条件变量,

等方法来提供读写之间的有效的同步机制。

本例程序使用信号量进行同步,

主要是因为它方便,使用广泛,且独立于进程。

本例程序实现了,

生产者进程:

每次读取YUV输入文件的一帧,

然后将其写到共享内存中。

消费者进程:

每次从共享内存中读到一帧,

处理后,

将其写到输出文件。

两个进程间使用信号量来保证同步处理每一帧。

本例程序很好地示范了共享内存和信号量的机制,

对于实际程序的开发很有意义。

二、生产者进程

common.h

用来设置一些测试用的基本参数。

/*

* \File

* common.h

*/

#ifndef __COMMON_H__

#define __COMMON_H__

#define TEST_FILE "coastguard_cif.yuv"

#define OUTPUT_FILE "coastguard_cif_trsd.yuv"

#define FYUV_WIDTH 352

#define FYUV_HEIGHT 288

#endif

共享内存相关的头文件。

shm_com.h

/*

* \File

* shm_com.h

* \Brief

*/

#ifndef __SHM_COM_H__

#define __SHM_COM_H__

#define SHM_SEED 1001

#define MAX_SHM_SIZE 2048*2048*3

typedef struct shared_use_st

{

int end_flag //用来标记进程间的内存共享是否结束: 0, 未结束; 1, 结束

char shm_sp[MAX_SHM_SIZE]//共享内存的空间

}shared_use_st

#endif

信号量的头文件

semaphore.h

/*

* \File

* semaphore.h

* \Brief

* semaphore operation

*/

#ifndef __SEMAPHORE_H__

#define __SEMAPHORE_H__

#define SEM_SEED 1000

union semun

{

int val

struct semid_ds *buf

unsigned short *array

}

int set_semvalue(int sem_id, int value)

void del_semvalue(int sem_id)

int semaphore_p(int sem_id)

int semaphore_v(int sem_id)

#endif

帧处理的头文件

frame.h

/*

* \File

* frame.h

* \Brief

*

*/

#ifndef __FRAME_H__

#define __FRAME_H__

#include "shm_com.h"

#define PIX_VALUE 1

typedef enum

{

YUV420,

YUV422,

YUV444,

RGB

}frame_type_e

typedef struct

{

int frm_w// width

int frm_h// height

frame_type_e frm_type

int frm_size

char *frm_comps

}frame_t, *frame_p

int init_frame(frame_p frame, int width, int height, frame_type_e type)

int free_frame(frame_p frame)

int read_frame_from_file(frame_p frame, FILE* fp)

int write_frame_into_file(FILE* fp, frame_p frame)

int read_frame_from_shm(frame_p frame, shared_use_st* shm)

int write_frame_into_shm(shared_use_st* shm, frame_p frame)

int crop_frame(frame_p frame, int l_offset, int t_offset, int c_w, int c_h)

#endif

生产者进程的基本流程:

打开输入文件并初始化帧

创建并初始化共享内存和信号量

然后每次读取一帧,

用信号量获取共享内存的权限后,

将读取的帧写入共享内存,

再释放共享内存的权限。

当处理完所有的帧后,

设置结束标志,

并释放相关的资源。

producer.c

/*

* \File

* producer.c

* \Brief

* Test shared-memory and message-queue

*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <errno.h>

#include <unistd.h>

#include <sys/shm.h>

#include <sys/sem.h>

#include "common.h"

#include "semaphore.h"

#include "shm_com.h"

#include "frame.h"

int main(char argc, char* argv[])

{

FILE* fp_in = NULL

frame_t frame

int frame_cnt = 0

int sem_id// semaphore id

int shm_id// shared-memory id

void* shared_memory = (void*)0

shared_use_st* shared_stuff

/* Open input file */

if ((fp_in = fopen(TEST_FILE, "rb")) <0 )

{

printf("Open input file failed: %s\n", TEST_FILE)

exit(EXIT_FAILURE)

}

/* Init frame */

init_frame(&frame, FYUV_WIDTH, FYUV_HEIGHT, YUV420)

printf("FRAME: w = %d, h = %d\n", frame.frm_w, frame.frm_h)

/* Create and init semaphore */

sem_id = semget((key_t)SEM_SEED, 1, 0666 | IPC_CREAT)

if (sem_id == -1)

{

fprintf(stderr, "semget failed.\n")

exit(EXIT_FAILURE)

}

/* Init shared-memory */

shm_id = shmget((key_t)SHM_SEED, sizeof(struct shared_use_st), 0666 | IPC_CREAT)

if (shm_id == -1)

{

fprintf(stderr, "shmget failed.\n")

exit(EXIT_FAILURE)

}

shared_memory = shmat(shm_id, (void*)0, 0)

if (shared_memory == (void*)-1)

{

fprintf(stderr, "shmat failed.\n")

exit(EXIT_FAILURE)

}

shared_stuff = (struct shared_use_st*)shared_memory

shared_stuff->end_flag = 0

printf("FRAME_CNT: %d\n", frame_cnt)

set_semvalue(sem_id, 1)

while (read_frame_from_file(&frame, fp_in) == 0)

{

semaphore_p(sem_id)

/* Write it into shared memory */

write_frame_into_shm(shared_stuff, &frame)

shared_stuff->end_flag = 0

semaphore_v(sem_id)

frame_cnt++

printf("FRAME_CNT: %d\n", frame_cnt)

}

semaphore_p(sem_id)

shared_stuff->end_flag = 1

semaphore_v(sem_id)

/* over */

printf("\nProducer over!\n")

fclose(fp_in)

free_frame(&frame)

del_semvalue(sem_id)

if (shmdt(shared_memory) == -1)

{

fprintf(stderr, "shmdt failed.\n")

exit(EXIT_FAILURE)

}

exit(EXIT_SUCCESS)

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/85389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-05
下一篇2023-03-05

发表评论

登录后才能评论

评论列表(0条)

    保存