當前位置:首頁 » 新型創造 » 創造服務

創造服務

發布時間: 2020-11-22 01:50:25

A. 酒店服務行業中,「驚喜服務」的含義如何為客人創造「驚喜

一些細節服務的重視.如對客人的喜好進行記錄,安排給客人習慣的老位置,喜愛的食物等,對客人特殊要求的記錄.

B. 如何創建系統服務

1、修改注冊表 主要有兩種方法…… 還有一個好用的命令:sc delete+服務名

在「開始→運行」中鍵入「regedit.exe」,打開「注冊表編輯器」,展開分支「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services」,在右側窗格中顯示的就是本機安裝的服務項。
如果要新建服務,只須點擊「編輯→新建→項」,然後為此項命名,如「test」;然後右擊該項,選擇「新建→字元串值」或「新建→DWORD值」即可。添加一個服務項目具體需要添加的鍵值如下:
「DisplayName」,字元串值,對應服務名稱;
「Description」,字元串值,對應服務描述;
「ImagePath」,字元串值,對應該服務程序所在的路徑;
「ObjectName」,字元串值,值為「LocalSystem」,表示本地登錄;
「ErrorControl」,DWORD值,值為「1」;
「Start」,DWORD值,值為2表示自動運行,值為3表示手動運行,值為4表示禁止;
「Type」,DWORD值,應用程序對應10,其它對應20。
另外,還要在「test」項下新建一個「Enum」項。按照以上步驟添加QQ程序為服務,重新啟動計算機後,打開「服務」窗口,就可以看到剛才添加的QQ服務。
如果要刪除某項服務,只要刪除注冊表的中相關鍵值即可,本例中要刪除QQ服務,直接刪除「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test」分支即可。

2、使用SC命令 (不錯,使用也簡單)

先進入命令行 (開始——〉運行——輸入CMD),直接輸入SC可以查看關於該命令的幫助。

如果要刪除一個系統服務,可以使用 SC delete [服務名稱],比如刪除messager服務,輸入SC DELETE MESSAGER。
SC使用這樣的語法:
1. SC [Servername] command Servicename [Optionname= Optionvalue]

2. SC [command]

這里使用第一種語法使用SC,使用第二種語法顯示幫助。

下面介紹各種參數。

Servername
可選擇:可以使用雙斜線,如\\myserver,也可以是\\192.168.0.1來操作遠程計算機。如果在本地計算機上操作

就不用添加任何參數。

Command
下面列出SC可以使用的命令。

config----改變一個服務的配置。(長久的)

continue--對一個服務送出一個繼續控制的要求。

control----對一個服務送出一個控制。

create----創建一個服務。(增加到注冊表中)

delete----刪除一個服務。(從注冊表中刪除)

EnumDepend--列舉服務的從屬關系。

GetDisplayName--獲得一個服務的顯示名稱。

GetKeyName--獲得一個服務的服務鍵名。

interrogate--對一個服務送出一個詢問控制要求。

pause----對一個服務送出一個暫停控制要求。

qc----詢問一個服務的配置。

query----詢問一個服務的狀態,也可以列舉服務的狀態類型。

start----啟動一個服務。

stop----對一個服務送出一個停止的要求。

Servicename
在注冊表中為service key制定的名稱。注意這個名稱是不同於顯示名稱的(這個名稱可以用net start和服務控

制面板看到),而SC是使用服務鍵名來鑒別服務的。

Optionname
這個optionname和optionvalue參數允許你指定操作命令參數的名稱和數值。注意,這一點很重要在操作名稱和等

號之間是沒有空格的。一開始我不知道,結果………………,比如,start= optionvalue,這個很重要。

optionvalue可以是0,1,或者是更多的操作參數名稱和數值對。
如果你想要看每個命令的可以用的optionvalue,你可以使用sc command這樣的格式。這會為你提供詳細的幫助。

Optionvalue
為optionname的參數的名稱指定它的數值。有效數值范圍常常限制於哪一個參數的optionname。如果要列表請用

sc command來詢問每個命令。

Comments
很多的命令需要管理員許可權,所以我想說,在你操作這些東西的時候最好是管理員。呵呵!

當你鍵入SC而不帶任何參數時,SC.exe會顯示幫助信息和可用的命令。當你鍵入SC緊跟著命令名稱時,你可以得

到一個有關這個命令的詳細列表。比如,鍵入sc create可以得到和create有關的列表。
但是除了一個命令,sc query,這會導出該系統中當前正在運行的所有服務和驅動程序的狀態。

當你使用start命令時,你可以傳遞一些參數(arguments)給服務的主函數,但是不是給服務進程的主函數。

SC create
這個命令可以在注冊表和服務控制管理資料庫建立一個入口。

語法1
sc [servername] create Servicename [Optionname= Optionvalue]

這里的servername,servicename,optionname,optionvalue和上面的一樣,這里就不多說了。這里我們詳細說

明一下optionname和optionvalue。

Optionname--Optionvalue
描述

type=----own, share, interact, kernel, filesys
關於建立服務的類型,選項值包括驅動程序使用的類型,默認是share。

start=----boot, system, auto, demand, disabled
關於啟動服務的類型,選項值包括驅動程序使用的類型,默認是demand(手動)。

error=----normal, severe, critical, ignore
當服務在導入失敗錯誤的嚴重性,默認是normal。

binPath=--(string)
服務二進制文件的路徑名,這里沒有默認值,這個字元串是必須設置的。

group=----(string)
這個服務屬於的組,這個組的列表保存在注冊表中的ServiceGroupOrder下。默認是nothing。

tag=----(string)
如果這個字元串被設置為yes,sc可以從CreateService call中得到一個tagId。然而,SC並不顯示這個標簽,所

以使用這個沒有多少意義。默認是nothing

depend=----(space separated string)有空格的字元串。
在這個服務啟動前必須啟動的服務的名稱或者是組。

obj=----(string)
賬號運行使用的名稱,也可以說是登陸身份。默認是localsystem

Displayname=--(string)
一個為在用戶界面程序中鑒別各個服務使用的字元串。

password=--(string)
一個密碼,如果一個不同於localsystem的賬號使用時需要使用這個。

Optionvalue
Optionname參數名稱的數值列表。參考optionname。當我們輸入一個字元串時,如果輸入一個空的引用這意味著

一個空的字元串將被導入。

Comments
The SC CREATE command performs the operations of the CreateService API function.
這個sc create命令執行CreateService API函數的操作。詳細請見CreateService。

例1
下面這個例子在一台叫做(\\myserver)的計算機上為一個叫「NewService」的服務建立的一個注冊表登記。
sc \\myserver create NewService binpath= c:\winnt\system32\NewServ.exe

按照默認,這個服務會建立一個WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START啟動方式。這將不會有任何從屬

關系,也將會按照localsystem安全上下關系來運行。

例2
下面這個例子將在本地計算機上,建立一個服務,它將會是一個自動運行服務,並且運行在他自己的進程上。它

從屬於TDI組和NetBios服務上。注意,你必須在從屬中間增加一個空格的引用。

sc create NewService binpath= c:\winnt\system32\NewServ.exe type= own
start= auto depend= "+TDI Netbios"

例3
服務開發者可以通過臨時改變二進制路徑(影像路徑)的方式來將這個服務運行在內核調試器的上下關系中。下

面這個例子就可以讓我們看到如何改變服務的配置。

sc config NewService binpath= "ntsd -d c:\winnt\system32\Newserv.exe"
這個例子會引起服務控制管理器調用ntsd.exe使用下例的參數字元串:
"-d c:\nt\system32\NewServ.exe"

當系統裝入newserv.exe時ntsd將會轉而打斷調試器,所以斷點可以被設置在服務代碼里。

SC QC
這個SC QC「詢問配置」命令可以列出一個服務的配置信息和QUERY_SERVICE_CONFIG結構。

語法1
sc [Servername] qc Servicename [Buffersize]

Parameters
servername和servicename前面已經介紹過了,這里不再多說。

Buffersize,可選擇的,列出緩沖區的尺寸。

Comments

SC QC命令顯示了QUERY_SERVICE_CONFIG結構的內容。

以下是QUERY_SERVICE_CONFIG相應的區域。
TYPE------dwServiceType
START_TYPE----dwStartType
ERROR_CONTROL----dwErrorControl
BINARY_PATH_NAME--lpBinaryPathName
LOAD_ORDER_GROUP--lpLoadOrderGroup
TAG------dwTagId
DISPLAY_NAME----lpDisplayName
DEPENDENCIES----lpDependencies
SERVICE_START_NAME--lpServiceStartName

例1

下面這個例子詢問了在上面例子中建立的「NewService」服務的配置:

sc \\myserver qc NewService

sc顯示下面的信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : c:\winnt\system32\NewServ.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : NewService
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem

NewService有能力和其他的服務共享一個進程。但是它不是自動啟動的。二進制文件名是NewServ.exe。這個服務

不依靠與其它的的服務,而且運行在lcoalsystem的安全上下關系中。這些都是調用QueryServiceStatus基本的返

回,如果還需要更多的細節屆時,可以看看API函數文件。

SC QUERY

SC QUERY命令可以獲得服務的信息。

語法:
sc [Servername] query { Servicename | Optionname= Optionvalue... }

參數:

servername, servicename, optionname, optionvalue不在解釋。只談一下這個命令提供的數值。

Optionname--Optionvalue
Description

type=----driver, service, all
列舉服務的類型,默認是service

state=----active, inactive, all
列舉服務的狀態,默認是active

bufsize=--(numeric value)
列舉緩沖區的尺寸,默認是1024 bytes

ri=----(numeric value)
但開始列舉時,恢復指針的數字,默認是0

Optionvalue
同上。

Comments

SC QUERY命令可以顯示SERVICE_STATUS結構的內容。

下面是SERVICE_STATUS結構相應的信息:
TYPE------dwServiceType
STATE------dwCurrentState, dwControlsAccepted
WIN32_EXIT_CODE----dwWin32ExitCode
SERVICE_EXIT_CODE--dwServiceSpecificExitCode
CHECKPOINT----dwCheckPoint
WAIT_HINT----dwWaitHint

在啟動計算機後,使用SC QUERY命令會告訴你是否,或者不是一個啟動服務的嘗試。如果這個服務成功啟動,WIN32_EXIT_CODE區間會將會包含一個0,當嘗試不成功時,當它意識到這個服務不能夠啟動時,這個區間也會提供一個退出碼給服務。

例子

查詢「NewService"服務狀態,鍵入:

sc query NewService

顯示一下信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

注意,這里存在一個給這個服務的退出碼,即使這個服務部不在運行,鍵入net helpmsg 1077,將會得到對1077錯誤信息的說明:

上次啟動之後,仍未嘗試引導服務。

所以,這里我想說一句,希望大家可以活用net helpmsg,這會對你的學習有很大的幫助。

下面在對SC query的命令在說明一下:

列舉活動服務和驅動程序狀態,使用以下命令:
sc query

顯示messenger服務,使用以下命令:
sc query messenger

只列舉活動的驅動程序,使用以下命令:
sc query type= driver

列舉Win32服務,使用以下命令:
sc query type= service

列舉所有的服務和驅動程序,使用以下命令:
sc query state= all

用50 byte的緩沖區來進行列舉,使用以下命令:
sc query bufsize= 50

在恢復列舉時使用index=14,使用以下命令:
sc query ri=14

列舉所有的互動式服務,使用以下命令:
sc query type= service type= interact

C. 服務創造價值,管理創造效益什麼意思

筆者經常受公司之託進行財務管理咨詢,最近幾家公司的財務總監都不約而同地提出了這樣一個問題:新經濟形勢下,財務管理在公司價值創造活動中應該扮演什麼角色,怎樣才能真正起到核心作用呢?筆者認為,只有明確了財務工作的宗旨、扮演了正確的角色、取得了工作實績才能贏得財務管理應有的地位。第一,財務管理應成為公司戰略規劃的主要參與者。戰略規劃決定了企業未來的發展方向,關繫到企業的興衰成敗。而企業主要是一個經濟價值創造的主體,關鍵戰略一般事關財務問題。這就要求公司的財務管理工作關注公司戰略規劃,為公司戰略產生理想的財務影響起到參謀和支持作用。隨著經營管理模式的國際化,戰略規劃和戰略指導的任務越來越多地落到了公司財務管理者身上,這就要求財務人員必須充分運用其綜合管理能力確保戰略計劃的全面性和科學性;充分運用財務規劃與決策工具輔助戰略規劃,確保公司戰略的經濟性與創值性,確保公司發展的正確方向。第二,財務管理應成為公司創造價值的協助者。企業從原材料采購到產品生產,從存貨儲備到產品銷售,每一個環節的經營活動都與價值變動相聯系。財務管理者應發揮自己的專業優勢,為各個經營環節的決策服務,提高創造價值的能力和水平。具體來說,財務管理者可以在批量采購、最優庫存、自產與外包、更新與維修、生產批量、銷售定價與銷售政策、收款策略、商業信用與供應鏈金融等方面協助經營管理者進行科學決策,從而確保企業各個經營環節的價值創造。第三,財務管理應成為公司創造價值的保護者。隨著科學技術的不斷發展以及經營環境的不斷變化,企業面臨著內外部多方面的風險,任意一項風險的發生都會毀損企業的價值。這就需要企業建立合理、有效的內部控制和風險防範與預警機制以對風險進行評估、防範和監控。在企業的內部控制建設中,企業領導人是關鍵,財務管理是核心。企業要圍繞防範價值毀損這個關鍵目標,構建起內部控制與風險防範體系,而財務管理在內控體系建設過程中要發揮主導作用。第四,財務管理應成為公司創造價值的促進者。公司的價值創造和其他活動一樣,要想產生理想的效果就需要一定的激勵機制。一般來說,激勵機制一旦形成就會內在地作用於企業價值創造系統本身,使企業的價值創造機能處於良性的運行狀態。公司財務管理要參與相應的經濟責任考核和薪酬激勵以及各項獎懲制度的制定,完善與價值創造相關的激勵機制,並通過經濟責任考核以及各種獎懲措施促進公司的價值創造活動。第五,財務管理應成為新環境下的價值直接創造者。波特在《競爭優勢》中提出了價值鏈的概念。他把企業內外價值增加的活動分為基本活動和支持性活動,基本活動涉及企業生產、銷售、進料、發貨、售後服務。支持性活動涉及人事、財務、計劃、研究與開發等。基本活動創造價值,輔助活動保證基本活動的運行。在現代經濟環境下,財務管理除了作為輔助活動支持企業的各項創值活動之外,還可以利用現代經營環境發揮創造價值的功能。比如,企業可以在財務管理活動中通過降低成本費用來實現價值創造:利用多種結算手段降低結算成本;對外統一籌資降低資金使用成本;建立外匯資金平台,統一結售匯,降低企業用匯成本;進行資金集中管理,降低流動性成本;進行稅收籌劃,降低稅收成本;積極增加現金流入創造價值;科學利用閑散資金進行投資,獲取現金流流入;用好政府優惠政策,獲得補貼收入;等等。總之,企業財務管理的地位是要靠自己的工作成績來確立的。

D. VC 如何創建服務

這是我前幾天寫的一個例子:我給你注釋一下,如果還不懂,就加我:Q11(59)Q(59)903

// ProcApp.cpp : 定義控制台應用程序的入口點。
//
#pragma once

#include "stdafx.h"
#include <windows.h>
#include <winioctl.h>
//這是我自定義的類型,和你問和問題無關,你就把它當成一個類型就是了
typedef struct _CALL_BACK
{
HANDLE pParentId;
HANDLE pProcessId;
BOOLEAN bCreate;
}CALLBACKINFO,*PCALLBACKINFO;
//這個定義也和創建服務無關。你就把它當成一個常量吧
#define IOCTL_NTPROCDRV_GET_PROCINFO CTL_CODE(FILE_DEVICE_UNKNOWN,0x0800,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)

int _tmain(int argc, _TCHAR* argv[])
{

wchar_t szSymlName[]=L"slNTProcDrvYH";
wchar_t szDriverPath[MAX_PATH];
wchar_t *p;
::GetFullPathName(L"服務.sys",MAX_PATH,szDriverPath,&p);
//上面這個是得到服務的可執行文件路徑,一個服務總有一個可執行文件的
//打開服務管理器,第一個參數是計算機名,本機就用NULL,第二個是資料庫名
//默認資料庫就用NULL,第三個是訪問許可權。這個API返回服務管理器句柄。
SC_HANDLE scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (!scm)
{
printf("OpenSCManager失敗!");
return 0;
}
//這個是創建服務,它的第一個參數是服務管理器的句柄,第二個參數是服務
//名,第三個參數是服務的顯示名,第四個參數是許可權設置,第五個是服務類
//型,其它的你看一下MSDN吧
SC_HANDLE scs=CreateService(scm,szSymlName,szSymlName,SERVICE_ALL_ACCESS,SERVICE_KERNEL_DRIVER,SERVICE_DEMAND_START,SERVICE_ERROR_NORMAL,szDriverPath,NULL,0,NULL,NULL, NULL);
if (!scs)
{
int nError=GetLastError();
if (nError==ERROR_SERVICE_EXISTS||nError==ERROR_SERVICE_MARKED_FOR_DELETE)
{
scs=OpenService(scm,szSymlName,SERVICE_ALL_ACCESS);
}
if (!scs)
{
printf("CreateService失敗!%d",GetLastError());
return 0;
}
}
//這里是啟動服務
if (!::StartService(scs,0,NULL))
{
int nError=::GetLastError();
if (nError!=ERROR_SERVICE_ALREADY_RUNNING)
{
printf("StartService失敗!%d\n",nError);
CloseServiceHandle(scs);
CloseServiceHandle(scm);
return 0;

}
}
//下面的和你的問題沒有關了,你可以不用看了,但是後面有個關閉句柄的,不要忘了
HANDLE hDriver=::CreateFile(L"\\\\.\\slNTProcDrv",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hDriver==INVALID_HANDLE_VALUE)
{
printf("打開設備失敗!");
return 0;
}

HANDLE hProcessEvent=::OpenEvent(SYNCHRONIZE,FALSE,TEXT("Global\\NTProcDrvProcessEvent"));
if (!hProcessEvent)
{
printf("OpenEvent失敗!%d\n",::GetLastError());
CloseServiceHandle(scs);
CloseServiceHandle(scm);
return 0;
}
CALLBACKINFO callbackinfo,callbacktemp={0};
while(::WaitForSingleObject(hProcessEvent,INFINITE)==WAIT_OBJECT_0)
{
DWORD nBytsReturn;
BOOL bRet=::DeviceIoControl(hDriver,IOCTL_NTPROCDRV_GET_PROCINFO,NULL,0,(LPVOID)&callbackinfo,sizeof(callbackinfo),&nBytsReturn,NULL);
if (bRet)
{
if (callbackinfo.bCreate!=callbacktemp.bCreate||callbacktemp.pParentId!=callbackinfo.pParentId||callbackinfo.pProcessId!=callbacktemp.pProcessId)
{
if (callbackinfo.bCreate)
{
printf("有進程被創建,PID:%d\n",callbackinfo.pProcessId);
}
else
{
printf("有進程被結束,PID: %d\n",callbackinfo.pProcessId);
}
}
}
else
{

printf("進程信息獲取失敗!");
break;
}
}
CloseHandle(hDriver);
SERVICE_STATUS ss;
::ControlService(scs,SERVICE_CONTROL_STOP,&ss);
::DeleteService(scs);
::CloseServiceHandle(scs);
::CloseServiceHandle(scm);
return 0;
}

E. 如何創建用戶定義的服務

在 MS-DOS 命令提示符 (運行 cmd.EXE),請鍵入以下命令︰
路徑\INSTSRV。EXE 我的服務 路徑\SRVANY。EXE

其中路徑是 Windows NT 資源工具包 (即 C:\RESKIT)的驅動器和目錄,我的服務是您創建的服務的名稱。
示例︰
C:\Program Files\Resource Kit\Instsrv.exe 記事本 C:\Program Files\Resource Kit\Srvany.exe
注意:若要驗證該服務已被正確創建,檢查注冊表以確認下的 ImagePath 值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服務名稱
被設置為指向 SRVANY。EXE如果此設置不正確,服務將停止,不久之後它開始並返回事件 ID 7000服務名稱未能啟動。
運行注冊表編輯器 (Regedt32.exe)and 找到下面的子項︰

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ < 我服務 >
從編輯菜單上,單擊添加項。
關鍵名稱︰ 參數
類︰ < 空 >
選擇參數密鑰。
從編輯菜單上,單擊添加值。
值名稱︰ 應用程序
數據類型︰ REG_SZ
字元串︰ < 路徑 > \ < application.ext >
其中 < 路徑 > \ < application.ext > 是驅動器和包括擴展名 (如 C:\WinNT\Notepad.exe) 的應用程序可執行文件的完整路徑
關閉注冊表編輯器。
默認情況下,新創建的服務它配置為在系統重新啟動時自動運行。若要更改此設置為手動,從控制面板運行服務小程序並啟動值更改為手動。可以以幾種方式之一啟動服務設置為手動︰
-從控制面板中的服務小程序
-從 MS-DOS 命令提示符下,鍵入以下命令︰
NET START < 我服務 >
-使用 Sc.exe 實用工具,資源工具包中。從 MS-DOS 命令提示符下鍵入︰
< 路徑 > \Sc.exe 開始 < 我服務 >
其中 < 路徑 > 是驅動器和 Windows NT 資源工具包 (即 C:\Reskit) 的目錄。

F. 用cmd創建服務的命令的什麼

假設你的xx.exe位於C:\windows\system32目錄:
以下代碼於參考地址,start= auto 已經設置為自動啟動了,還請自行修改路徑,服務名稱等等。
====================================================
@ECHO OFF
rem 創建服務 ABDD
SC CREATE ABDD binPath= "C:\windows\system32\xx.exe" START= auto DISPLAYNAME= "ABCD EFGHSERBER" TYPE= own

rem 設置描述信息為 「提供三種管理服務,提供數據供應。」
SC description ABDD "提供三種管理服務,提供數據供應。"

rem 啟動服務 ABDD 也就是將這個服務的狀態標志成了 「啟動」 狀態
SC START ABDD

PAUSE

G. Linux 下如何創建一個服務

Linux系統能提供強大可靠的網路服務,並有管理程序對服務進行管理。例如我們熟悉的Web、FTP和電子郵件等,它們既可以單獨運行,也可以被守護進程inetd調用,而且運行得都非常好。但我們不能僅停留在贊嘆中,下面就給出兩個服務程序程序和一個客戶程序的例子,介紹服務程序和客戶程序之間是如何溝通的。另外還要編輯配置一些文件,讓服務程序也能接受服務管理程序管理。
這兩個服務程序功能相同,但一個是獨立服務程序,另一個是被inetd調用的服務程序。這是TCP/IP網路服務的兩大類,這里將兩個程序放在一起是為了比較程序結構和運行方式。兩服務程序都在Red Hat Linux 7.1和TurboLinux 7.0上調試通過。
獨立伺服器
TCP和UDP是兩大TCP/IP數據傳輸方式,套介面是建立伺服器客戶機連接的機制,首先介紹它們建立通信聯系的過程,然後給出一個TCP服務程序例子。
1.TCP套介面通信方式
對於TCP伺服器端,服務程序首先調用建立套介面的函數socket(),然後調用綁定服務IP地址和協議埠號函數bind()。綁定成功後調用被動監聽函數listen()等待客戶連接,還要調用獲取連接請求函數accept(),並一直阻塞到客戶連接請求的到達,這個函數獲取客戶機IP地址和協議埠號。
對於TCP客戶端,客戶程序啟動後後調用建立套介面函數socket(),然後調用連接函數connect(),此函數與伺服器通過三次握手建立連接。
伺服器和客戶機建立連接後,就可以使用讀函數read()和寫函數write()收發數據了。數據交換完成後便各自調用關閉套介面函數close()刪除套介面。TCP套介面通信方式見圖1所示。
圖1 TCP套介面通信方式
2.UDP套介面通信方式
UDP程序與TCP的區別是無需建立連接。伺服器首先啟動,然後等待用戶請求。客戶機啟動後便直接向伺服器請求服務,伺服器接到請求後給出應答。
對於UDP伺服器端,服務程序首先調用套介面函數socket(),然後調用綁定IP地址和協議埠號函數bind()。之後調用函數recvfrom()接收客戶數據,調用sendto()向客戶發送數據。
對於UDP客戶端,客戶機程序啟動後調用套介面函數socket(),然後調用sendto()向伺服器發送數據,調用recvfrom()接收伺服器數據。
雙方數據交換成功後,各自調用關閉套介面函數close()關閉套介面。UDP套介面通信方式見圖2所示。
圖2 UDP套介面通信方式
下面給出獨立服務程序的例子。這個程序雖然簡單,但是與復雜程序有著相同的結構。
//程序名:server.c
//功能:伺服器從客戶機讀入一個字元,並將排在此字元後面的字元回送客戶機
//伺服器埠:9000
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int pid; //用於存放fork()執行結果
int server_sockfd,client_sockfd; //用於伺服器和客戶機套介面描述符
int bind_flag,listen_flag; //用於存放bind()和listen()執行結果
int server_address_length,client_address_length; //作為伺服器客戶機地址長變數
struct sockaddr_in server_address; //作為伺服器地址結構變數(含地址和埠)
struct sockaddr_in client_address; //作為客戶機地址結構變數(含地址和埠)
if((pid=fork())!=0) //用fork()產生新進程
exit(0) ;
setsid() ; //以子進程開始下面的程序
函數socket(),創建一個套介面,成功則返回套介面描述符。
server_sockfd=socket(AF_INET,SOCK_STREAM,0);
if(server_sockfd<0)
{
printf(「socket error /n」);
exit(1);
}
server_address.sin_family=AF_INET;
函數htonl()用於將32位主機位元組順序轉換為網路位元組順序,其中參數INADDR_ANY表示任何IP地址。
server_address.sin_addr.s_addr=htonl(INADDR_ANY);
函數htons()用於將16位主機位元組順序轉換為網路位元組順序,其中的參數是綁定的埠號,讀者可根據環境自行改動,目的是不與其它服務埠沖突。
server_address.sin_port=htons(9000);
server_address_length=sizeof(server_address);
函數bind()用於綁定本地地址和服務埠號,若調用成功返回值為0。
bind_flag=bind(server_sockfd,/
(struct sockaddr *)&server_address,/
server_address_length);
if(bind_flag<0)
{
printf(「bind error /n」);
exit(1);
}
函數listen(),指明伺服器的隊列長度,被動等待客戶連接,調用成功返回值為0。
listen_flag=listen(server_sockfd,5);
if(listen_flag<0)
{
printf(「listen error /n」);
exit(1);
}
while(1)
{
char ch;
函數accept()等待和獲取用戶請求,為每個新連接請求創建一個新的套介面,調用成功返回新套介面描述符。
client_sockfd=accept(server_sockfd,/
(struct sockaddr *)&client_address,/
&client_address_length);
函數read()和write()用於在伺服器和客戶機之間傳送數據,調用成功返回讀和寫的位元組數。
函數close(),用於程序使用完一個套介面後關閉套介面,調用成功返回值0。其中的參數為accept()創建的套介面的描述符client_sockfd。
read(client_sockfd,&ch,1);
printf(「cli_ch=%c」,ch);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
}
程序完成後就可以使用命令進行編譯。在命令行中輸入「gcc -o server server.c」,將server.c編譯成可執行程序server,這時便可用客戶程序進行測試。在命令行執行「./server」啟動服務程序,執行「netstat -na」查看有無server的服務埠。如果存在,則執行下面編寫的客戶程序「./client」。不過這僅是手工啟動的方法,下面給出用服務管理程序管理server程序的方法。只要在目錄/etc/rc.d/init.d下放入服務程序的腳本就能被服務程序讀到。在命令行執行「touch server」創建文件server,並將文件屬性改成可執行。在管理程序中並不能看到此服務名,腳本文件必須有一些結構才能被管理程序認為是服務程序腳本。
為了減少工作量,拷貝/etc/rc.d/init.d下腳本httpd,將拷貝腳本名命名為server,然後對其編輯。
(1)執行「cp httpd server」。
(2)用文本編輯器vi(其它編輯器亦可)將server打開進入編輯狀態。首先用字元串server替換httpd。然後找到daemon server行,如果編寫的程序放在變數PATH目錄中,不需要修改此行;如果把服務程序放在其它目錄中,就要寫服務的全路徑。例如程序在/root的目錄中,就要寫成daemon /root/server,還要刪除「rm -f /var/run/server.pid」這一行。
(3)執行「chmod 755 server」,將server屬性設定為可執行。
此時就可以用chkconfig、ntsysv等工具,在希望的運行級中增加這個新服務程序,然後測試客戶機與伺服器能否通信。
被xinetd調用的服務程序
在Linux系統中,有很多服務是被xinetd(較早版本使用的是inetd)超級守護伺服器啟動的。其實凡是基於TCP和UDP的服務都可使用超級守護進程啟動,只是在服務量很大影響效率的情況下不被採用。
1.依賴xinetd啟動的服務建立通信過程
為了與獨立伺服器程序比較,我們看一下依賴xinetd的伺服器是如何啟動的。
(1)xinetd啟動時讀取/etc/xinetd目錄中的文件(早期版本為/etc/inetd文件),根據其中的內容給所有允許啟動的服務創建一個指定類型的套介面,並將套介面放入select()中的描述符集合中。
(2)對每個套介面綁定bind(),所用的埠號和其它參數來自/etc/xinetd目錄下每個服務的配置文件。
(3)如果是TCP套介面就調用函數listen(),等待用戶連接。如果是UDP套介面,就不需調用此函數。
(4)所有套介面建立後,調用函數select()檢查哪些套介面是活動的。
(5)若select()返回TCP套介面,就調用accept()接收這個連接。如果為UDP,就不需調用此函數。
(6)xinetd調用fork()創建子進程,由子進程處理連接請求。
◆ 子進程關閉所有其它描述符,只剩下套介面描述符。這個套介面描述符對於TCP是accept()返回的套介面,對於UDP為最初建立的套介面。然後子進程連續三次p()函數,將套介面描述符復制到0、1和2,它們分別對應標准輸入、標准輸出和標准錯誤輸出,並關閉套介面描述符。
◆ 子進程查看/etc/xinetd下文件中的用戶,如果不是root用戶,就用調用命令setuid和setgid將用戶ID和組ID改成文件中指定的用戶。
(7)對於TCP套介面,與用戶交流結束後父進程需要關閉已連接套介面。父進程重新處於select()狀態,等待下一個可讀的套介面。
最後調用配置文件中指定的外部服務程序,外部程序啟動後就可與用戶進行信息傳遞了。
2.為xinetd編寫專門的服務程序
除了獨立服務程序能被xinetd啟動外,還可以為xinetd編寫專門的程序。此處的例子程序與上面server.c功能相同。不過兩者的程序區別是很大的,此例的代碼僅相當於上面傳輸數據的部分。我們還將程序名定為server.c,所以不能放在相同目錄中,同名僅是為了和上面程序對照。
#include "unistd.h"
int main()
{
char ch;
read(0,&ch,1);
ch++;
write(1,&ch,1);
}
將程序編譯成可執行文件,並做些設置就可被xinetd啟動。注意不要和上面的獨立服務程序server一起啟動,因為客戶程序寫得比較簡單,訪問的是固定埠,伺服器都設成了相同的埠號。
(1)編輯/etc/services文件,在行末增加一條記錄:
server 9000/tcp
(2)在目錄/etc/xinetd.d下編寫文件server,內容為:
service server
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /home/test/server (此處設置成自己程序所在的目錄)
}
如果使用的是較早版本,則需在/etc/inetd.conf文件中添加下面的行:
server tcp nowait root /path/to/yourdirectory/server
(3)執行/etc/rc.d/initd.d/xinetd restart重新啟動xinetd伺服器。早期版本執行/etc/rc.d/initd.d/inetd restart重新啟動inetd。
(4)執行netstat -an查看有沒有server程序使用的埠號,如果有就可使用下面客戶機程序進行測試了。
客戶機程序
下面就客戶機函數做一簡單介紹。
//程序名client.c
/*功能:從客戶的控制台輸入一個字元,然後將這個字元送到伺服器,並將伺服器返回的字元顯示出來*/
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int sockfd;//
int address_len;
int connect_flag;
struct sockaddr_in address;
int connect_result;
char client_ch,server_ch;
函數socket()用於建立一個套介面,創建成功返回套介面描述符。
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf(「sockfd error /n」);
}
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(「192.168.0.1」);/*讀者根據自己環境改成伺服器地址*/
address.sin_port=htons(9000);
address_len=sizeof(address);
函數connect()用於與伺服器建立一個主動連接,調用成功返回值為0。
connect_flag=connect(sockfd,(struct sockaddr *)&address,address_len);
if(connect_flag==-1)
{
perror(「client」);
exit(1);
}
printf(「Input a character :」);
函數scanf()用於從控制台輸入一個字元,並將字元存入client_ch的地址。函數write()和read()用於傳輸數據。函數printf()在客戶機屏幕上顯示伺服器傳回的字元。函數close()關閉套介面。
scanf(「%c」,&client_ch);
write(sockfd,&client_ch,1);
read(sockfd,&server_ch,1);
printf(「character from server : %c/n」,server_ch);
close(sockfd);
exit(0);
}
執行命令「gcc -o client client.c」,將client.c編譯成client。執行「./client」,在程序提示下輸入一個字元,就能看到伺服器傳回的字元。
以上介紹的僅是簡單的例子。平時見到的服務程序遠比它復雜,而且很多是多協議服務程序或是多協議多服務程序。多協議服務程序就是在main()中分別創建供服務的TCP和UDP套介面。為每個服務分別寫出相應程序好處是便於控制,但是這樣每個服務都啟動兩個伺服器,而它們的演算法響應是一樣的,就要耗費不必要的資源,並且出了問題排錯也較困難。多服務是將不同的服務集成在一起由一個程序完成,可用一個數組表示服務,數組中的每一項表示某協議某服務的一種,這樣很容易擴展程序的服務功能。

H. 服務業是如何創造價值的

對服務勞動是否創造價值的思考[摘要] 服務勞動是否創造價值一直是我國學者爭論的焦點。本文在綜述不同觀點的基礎上,提出自己的看法,即要用發展的眼光認識商品價值的內涵。接著本文將服務分成生產者服務、消費者服務和分配服務並分別論述了它們的價值形成過程。[關鍵詞] 服務 勞動 價值20世紀90年代初期,發達國家國民生產總值中服務的比重佔60%-70%,中等發達國家也達到50%;在國際貿易領域,服務貿易流量約佔全球貿易總額的1/4,且有明顯的增長趨勢;[1]在就業方面,服務業在世界發達國家就業量佔2/3左右。[2]可見,隨著世界各國經濟和產業結構的調整,服務對國民經濟的發展變得越來越重要。一、 文獻綜述與本文問題的提出雖然服務的重要性得到了充分的肯定,但是服務價值問題一直是學術界爭論不休的理論問題。對於服務價值問題,學術界爭論的焦點在於服務勞動的價值創造問題,即服務勞動是否創造了價值。對於服務勞動是否創造了價值,學術界主要存在三種觀點:服務勞動不創造價值、部分服務勞動創造了價值和服務勞動創造價值。 服務勞動不創造價值的觀點的支持者大都認為只有生產物質產品的勞動才能創造價值。吳宣恭(2002)認為活勞動是價值的唯一源泉,產權和交換、分配過程不能創造價值,而只能把已經創造出來的價值轉移給相關的所有者,成為他們的收入。胡均(2002)認為只有物質生產領域的勞動才創造價值,非物質生產領域的勞動雖然重要,但並不創造價值,承認非生產性勞動創造價值,不僅不是肯定其重要性,反而是貶低了它的重要性。谷清水(2002)對「精神勞動和服務勞動都能創造價值」的5個理論依據一一進行反駁,反對以社會「需要」和「重要」與否衡量一項活動是否創造價值,主張只有既消耗又物化在有用物品中、使勞動處於「凝結」物狀態的勞動才創造價值。屈炳祥魏彩霞(2002)以馬克思對生產勞動和非生產勞動的劃分為依據,對王述英關於「服務勞動也是生產勞動」一說進行反駁,認為服務勞動不是生產勞動,不創造價值。魏新麗肖彬(2004)反對柳新元為將服務納入創造價值的勞動中而將使用價值的概念擴大的做法,他們認為,使用價值的本質特徵在於它的物質性,純粹的服務勞動參與經濟運行是通過介入流通領域和消費領域實現的,參與交換後並沒有使價值增大。部分服務勞動創造價值觀點的學者大多主張擴大生產勞動的外延,認為創造價值的勞動既包括創造物質財富的勞動,也包括創造精神產品的勞動。程恩富(2001)在提出並論證「新的活勞動價值一元論」的基礎上主張將非物質生產領域中一些部門勞動者的勞動納入創造價值的范疇。他認為,能夠提供文化商品(精神商品)的勞動、直接為生產性企業提供某種生產性服務的非物質生產部門的勞動以及與勞動力這一特殊商品的生產和再生產直接有關的非物質生產勞動都創造價值。郭小魯(2001)反對根據國民經濟核算體系中國內生產總值包含服務勞動的價值得出服務勞動創造價值的結論,他認為物質產品的生產者在生產商品過程中購買的服務勞動是價值創造的一個環節,而唱歌、咨詢服務、金融服務等勞動結果不是有形商品的服務勞動從屬於物質產品的生產,只具有交換價值但不創造價值,並通過構造經濟社會模型對此進行說明。衛興華(2004)主張要適應社會的發展,超越物質生產的范圍,拓寬生產勞動和創造價值的勞動的范圍,並將社會所需的勞動分為物質生產勞動、精神生產勞動、商業和服務勞動和社會公務勞動四類。精神生產勞動生產精神財富,有的可以創造價值如出版書籍、科技發明、建築設計,有的則不能創造價值如教師講課、舞蹈表演、藝術家演出等。商業和服務勞動有的創造價值如金融業、保險業、等商業性服務,有的不創造價值如機關、學校等非商業性服務和歌舞廳純粹娛樂型服務。社會公務勞動不創造價值。服務勞動創造價值的觀點的支持者較多。李江帆(1997)剖析了否定服務勞動創造價值的流行觀點如「價值轉移說」、「國民收入再分配說」及「非生產勞動說」,從反面論證了服務勞動創造價值的論點。陳憲(2003)通過勞動價值論的基本觀點與西方的效用價值論相結合,沿著實物勞動成果-服務產品-服務產品的使用價值與交換價值-服務產品的價值與價值量的思路論證了服務勞動創造價值。柳新元(2003)通過擴大馬克思的使用價值范疇,把獨立於主體之外的能夠滿足主體某種需要的所有客體納入使用價值范疇的范圍內,並證明服務勞動生產了使用價值,進而論證了服務勞動創造價值。韓玉軍(2004)通過修正古典理論框架,消除「兩分法」把服務納入了古典價值的范疇,並通過對服務價值的實質進行理論分析得出服務勞動創造價值的結論。這三種類型對行探討出了在綜述了服務勞動的價值創造問題不但會影響到世界對服務及其所創造出的巨大財富的認識和態度,而且會影響到服務價值理論的基礎。筆者認為,認為服務勞動不創造價值的學者其實是過於束縛在馬克思勞動價值論的框框裡面,不能用發展的眼光看待服務勞動。其實馬克思本身也是用發展的眼光看待服務勞動的。隨著經濟社會的發展,人們的價值觀念本身也在不斷的發生變化,用舊的價值觀念理解現代的服務經濟現象顯然是不合理的。事實上,服務具有多種類型,這些類型之間具有很大的差別,與社會物質生產之間的關系也具有很大差別。在不同的社會發展時期,服務扮演的角色也是有著很大的差別的。布朗寧和辛格爾曼於1975年根據聯合國標准產業的規則,將服務產業分為:消費者服務業,如招待與食品服務、私人服務、娛樂與消遣服務、雜項服務;生產者服務,如企業管理服務、金融服務、保險與房地產;分配服務,如運輸與貯藏、交通與郵電、批發與零售。認為服務勞動創造價值的學者雖然在理論上給予了論證,但是較少有學者詳細分析各類服務勞動是如何創造價值的。因此,本文將結合馬克思的勞動價值論和現代價值的內涵,分三種類型探討服務的價值形成。二、 服務價值內涵的發展(一) 馬克思對服務價值的發展古典經濟學家有關服務價值的觀點受到他們有關價值決定因素的影響。重農主義者和重商主義者及後來的許多古典經濟學家都依靠勞動價值學說與交換價值概念來理解和定義服務。斯密在《國民財富的性質和原因的研究》中稱:服務生產所使用的勞動並不「將它本身固定或實現在任何特定的物體上……這個物體在那種勞動過程過後仍將持續存在,隨後還能夠購得等量的勞動」,[3]他把「牧師、律師、醫生、文人、演員、歌手、舞蹈家」等服務列入非生產勞動范疇,認為這些服務是沒有價值的。馬克思對服務價值論進行了一定的發展。馬克思的《資本論》主要是考察物質生產領域里的活動,服務業方面只是論述了流通和金融業,並沒有涉及其他服務活動領域。馬克思認為「資本主義生產在這個領域中的所有這些表現,同整個生產比起來是微不足道的,因此可以完全置之不理。」因此馬克思並不認為服務業在國民經濟中不重要,而是服務業在當時很不發達。後來馬克思在《剩餘價值論》一書中,曾明確地指出服務是一個經濟范疇。馬克思還批評了斯密僅把生產物質產品的勞動看成是創造價值的勞動觀點,他指出「勞動的這種物質規定性同勞動作為生產勞動的特性毫無關系」。[4]馬克思還指出「對於提供這些服務的生產者來說,服務就是商品。服務有一定的使用價值和一定的交換價值。」[5]馬克思還把服務分成可以形成有形產品和不形成有形產品兩種,並對兩種服務的勞動價值給予了經濟學上的肯定。可見馬克思也是用發展的和歷史的眼光看待服務勞動的。(二)價值內涵的發展隨著社會環境、經濟技術條件及顧客消費觀念的變化,價值的內涵和外延也在變化。馬克思對價值定義的實質是無差別的勞動,用社會必要勞動時間來計量。他從經濟學的角度,對勞動價值進行高度抽象化,主要是為了揭示生產力與生產關系的內在特徵。但是,我們並不能停留在馬克思所處的時代來理解現代社會產品或服務的價值內涵。馬克思對價值的定義只依附於勞動時間和一般技術水平,沒有包含商品交換時的主觀需求的認定性。在物質財富有限,對功能的需求和物質供給矛盾凸現的背景下,美國通用電氣公司工程師L·D邁爾斯創立了價值工程(VE)/價值分析(VA)技術。他認為:價值是投入的單位成本獲得的產出或收益。它反映出價值與成本的密切關系。他認為成本是顧客購買決策的重要權衡因素。在買方市場下,需求不斷變化,企業間競爭激烈,Michael E.Porter在《競爭優勢》一書中認為,價值是買方願意為企業提供給他們的產品與服務所支付的價格;價值一般用總收入衡量;「著眼於價值而不是成本,有助於提示競爭優勢的來源」。1997年,《精細思想》的作者James P.Womack和Dniel T.Jones認為:「價值是由顧客決定的,是顧客獲得滿足的度量,可以用具有特定價格、能在特定時間內滿足用戶需求的特定產出表示」。在「顧客價值」概念凸現的今天,現代市場營銷學之父Philip Kotler認為顧客價值是指整體顧客價值與整體顧客成本之間的差額部分,而整體顧客價值是指顧客從給定產品和服務中所期望得到的所有利益。可見商品的價值內涵是隨著經濟社會的發展而不斷演變著。每個時代人們對價值的理解都受到其經濟環境的影響,都有著獨特的角度。我們怎麼還能用馬克思時代的價值內涵來理解今天的經濟現象呢?三、 服務價值的形成(一) 生產者服務的價值形成一個經濟體里的生產者服務的產生在於物質生產的需求,因此生產者服務的提供方和接受方分別是生產者服務企業和物質生產企業。物質生產企業購買某種服務,目的是提高生產效率,獲得更多利潤。因此該種服務的提供必須能夠滿足物質生產企業的要求,提高其生產效率,提高其創造的價值。而這種服務提供者的收入是來自於他所服務的物質生產企業。如果從「顧客價值」的概念來理解,那麼它的顧客價值是來自於物質生產企業由於接受了服務後創造物質價值速度的加快。馬克思的價值理論認為,產品的價值由生產資料的價值(C)、勞動者的工資(V)、剩餘價值(M)三部分組成。這三個部分在生產者服務的價值形成中分別表現為:生產者服務企業所用到的固定資產或服務工具的折舊、生產者服務企業員工的工資、生產者服務企業的企業主得到的利潤和提交政府的稅收。商品的空間形態通常是確定的、有形的,原材料通過勞動者的加工轉移到最終產品上。但是,服務的空間形態是不確定的、無形的。服務勞動者加工的對象往往是物質生產者的成品或半成品,或者服務勞動者可以代替物質生產者完成其產品生產的某一工作環節,或者由於服務勞動者的參與,物質生產者的勞動效率得到提高。從生產者服務的對象、過程和結果,我們都不能否認這一項服務的價值存在性。(二) 消費者服務的價值形成有些觀點認為,消費者服務只是個人收入的再分配,提供消費者服務的勞動沒有給社會創造或加快社會創造物質產品,並不創造價值。這只是站在服務業極不發達的時代狹隘地理解價值的內涵和外延。經濟學要研究的主要是社會資源的配置問題。之所以要研究這個問題主要是人類慾望的無限性。人類慾望是無限的,那麼人類的需求絕不會局限於物質的需求。人類需求由物質需求向精神需求的升級正是人類社會發展的見證。雖然消費者服務是看不到的,但是可以被感受到。消費者服務可以分為兩種:一種是服務接受者為了提升自己的人力資本水平,提高自己的工作效率,從而為自己增加個人收入帶來幫助;另一種是服務接受者的物質需求已經得到充分的滿足,從而對非物質需求的一種追求。第一種消費者服務其實是生產者服務在以人為單位上的一個縮影。第一種消費服務的顧客價值可以體現為服務接受者人力資本水平的提高,工作效率的提高。而這種提高可以使服務接受者創造更多的物質價值或其他服務價值。由此可見第一種消費者服務通過改變服務接受者,間接地參與了物質部門的價值創造。第二種消費者服務雖然不能增加物質生產創造的價值,但是並不能以狹隘的價值內涵來否定它的價值。馬斯洛理論把需求分成生理需求、安全需求、社交需求、尊重需求和自我實現需求五類,依次由較低層次到較高層次。更高級的需求也往往是通過接受第二種消費者服務得到滿足的。消費者服務的提供者可以是企業或個人。生產資料的價值主要體現在服務提供者使用的固定資產和工具的折舊上,或服務提供者本人為了具備提供這種服務的能力而花費的成本在其所提供服務上的均攤,或兩者的綜合。如果服務提供者是企業,勞動者的工資和剩餘價值就分別體現為企業員工的工資和企業主的利潤和提交政府的稅收。如果服務提供者是個人,那麼勞動者的工資和剩餘價值一起體現在其個人的所得和所提交的個人所得稅。(三) 分配服務的價值形成分配服務主要發生在流通領域。馬克思的勞動價值論認為流通領域是不會創造價值的。其理由是:無論價值交換過程有多長,它最後都要表現為對使用價值的購買力。其實這種看法是產生於服務業極不發達的時代。在服務業極不發達的時代,人們只看重物質生產環節,領略不到其分配服務的價值。實際上物質商品的流通是需要成本的。如果流通成本太大必然會阻礙物質商品交換環節的完成。物質商品的交換環節如果沒辦法完成,那麼物質商品的交換價值就得不到實現。物質商品的價值如果得不到實現,那麼生產者會去生產這種物質商品嗎?顯然不會。分配服務的功能正好是為了克服商品的流通障礙。發達的分配服務為一個經濟體物質生產的發展提供了一個良好的流通環境。分配服務的接受者可以是企業,也可以是個人。當分配服務的接受者是企業時,其顧客價值體現為企業可以擴大其產品的出售,從而擴大其生產,獲得更大的利潤。當分配服務的接受者是個人時,其顧客價值體現為個人可以獲得或更低的成本獲得自己需要的產品。而提供分配服務的企業需要投入一定的固定資產或工具,還有勞動力,這體現為其服務的成本。而該企業所得的利潤和提交政府的稅收,是其分配服務的剩餘價值的體現。四、 結論綜上所述,價值的內涵是隨著社會經濟的發展而演變的,我們不能停留在馬克思的時代背景,用馬克思價值內涵來理解今天的服務價值問題。生產者服務、消費者服務和分配服務領域的勞動都有創造價值,且在服務價值形成過程中有很大的差異。
本文來自: 人大經濟論壇(http://www.pinggu.org) 詳細出處參考:http://www.pinggu.org/html/2007-3/19/154266.html

I. 怎麼創造伺服器

1\製作網路克隆鏡像:將做好的系統盤,直接掛接在網路克隆伺服器上,這里需要注意,系統盤必須設置為從盤,網路克隆程序必須安裝在網路克隆伺服器的主硬碟中。網路克隆伺服器硬碟上必須有足夠的硬碟空間,可用掛接第二塊硬碟的方法,用於創建克隆鏡像文件。
2\將准備好的另外一塊硬碟掛在你做好的機器上.之後重新啟動到DOS模式,啟動GHOST,選擇「Local→Disk→To Image
3\選擇需要做鏡像的系統盤,按回車鍵選擇已經准備好的擁有足夠空間的分區(這里我們選擇的是第二塊物理硬碟)
4\鏡像文件備份完成後,我們該建立GHOST伺服器了.啟動WINDOWS打開GHOSTSRV . EXE文件.其文件可以在GHOST企業版里找到.(其實BIOS維修網站論壇中已經提供下載了)
5\給伺服器起一個名字.我起的名字是shenzi 選擇克隆客戶端,然後選擇我們剛才備份到另外一個硬碟的鏡像文件,點擊接受客戶的按扭。系統此時將自動尋找客戶端。
6\ 現在我們要做的工作是設置客戶端了。 在GHOST文件所在的目錄里,我們需要創建一個WATTCP . CFG的文件.此文件是指定IP以及網關的.如果沒有此文件GHOST會自動掃描DHCP伺服器.不推薦使用DHCP伺服器.所以我們用DOS的命令,EDIT建立一個WATTCP . CFG的文件吧. 在GHOST所在的目錄里輸入 edit空格wattcp .cfg 在EDIT中,我們建立以下內容 IP=你這台機器所指定的IP.為了避免重復,盡量使用機器號. NETMASK=子網掩瑪,根據IP規則設置. GATEWAY=網關.就是建立了GHOST伺服器的IP地址.
7\建立完成後,將文件保存後,退出EDIT。然後運行8139網卡DOS環境下驅動程序.執行RTSPKT空格0X60,0X60是給網卡的一個中斷.這里必須給網卡一個中斷.否則是無法驅動你的網卡.我用的中斷是0X60.呵呵,其實這只是一種方法,最簡單的方法是直接運行GO批處理文件,其為自動加裝網卡DOS驅動和GHOST的一個批處理,這樣更方便.
8\運行GHOST.選擇MULTICASTING9\ 此時系統會詢問你伺服器名字.在這里輸入你起的伺服器名字(這里為shenzi).按回車10\ 選擇需要恢復的硬碟.按回車11\此時我們去GHOST伺服器看看吧,看正常的情況下,伺服器已經可以看到了客戶機的IP和MAC地址了.等把客戶端全部連接上之後,就可以選擇開始傳送進行網路克隆了.

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837