根據網上各種文檔整理而成.=號兩邊要空格的問題折磨了我好久.
1:安裝
先檢查是否安裝CVS包
#>rpm -qa|grep cvs
沒有安裝的話,用下面2種方法安裝
(1):在安裝linux的時候可以選擇安裝CVS包
(2):另外下載CVS RPM包 自行安裝
2:建立cvs用戶和組
#> groupadd cvs
#> useradd -g cvs -G cvs –d /cvsroot cvsroot
#> passwd cvsroot
更改目錄屬性
chmod –R 770 /cvsroot
3:建立CVS服務
#more /etc/services | grep cvspserver
看看是否有
cvspserver 2401/tcp #CVS client/server operations
cvspserver 2401/udp #CVS client/server operations
如果沒有需要到/etc/service文件中增加
建立#vi /etc/xinet.d/cvspserver 文件內容如下
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/cvsroot pserver
}
該文件有特別要注意的地方,所有=號兩邊都需要空一個空格,除了"root=/cvsroot" 所有要空格的地方,不要多加空格.否則會有CVS服務不能啟動的問題
切換到cvsroot用戶
#cvs -d /cvsroot init
然后重新啟動xinetd服務或者重啟動機器
#service xinetd restart
然后用
#netstat -l | grep cvspserver
or
#netstat -l | grep 2401
看是否有下面tcp 0 0 *:cvspserver *:* LISTEN
說明已經正常啟動,沒有的話請重新檢查配置過程是否有錯誤或者遺漏。最后還必須檢查防火墻的設置,把2401端口打開。
4:用戶管理
CVS默認使用系統用戶登錄,所有系統用戶都可以登陸,但是這樣對系統不安全,我們需要獨立的用戶管理.CVS用戶名和密碼保存在CVSROOT目錄下的passwd文件中.格式
用戶名:密碼:系統用戶
#htpasswd passwd username
用來設置用戶密碼并保存到passwd文件中.
然后需要關閉系統用戶登陸使用cvs的權限,CVSROOT目錄下的config文件,把#SystemAuth=no的#去掉就可以了.
測試登陸
#cvs -d “:pserver:username@127.0.0.1:/cvsroot” login
ok
5 :源代碼倉庫的備份和移動
基本上,CVS的源代碼倉庫沒有什么特別之處,完全可以用文件備份的方式進行備份。需要注意的只是,應該確認備份的過程中沒有用戶提交修改,具體的做法可以是停止CVS服務器或者使用鎖等等。恢復時只需要把這些文件按原來的目錄結構存放好,因為CVS的每一個模塊都是單獨的一個目錄,與其他模塊和目錄沒有任何瓜葛,相當方便。甚至只需要在倉庫中刪除一個目錄或者文件,便可以刪除該模塊的一些內容,不過并不建議這么做,使用CVS的刪除功能將會有一個歷史記錄,而對倉庫的直接刪除不留任何痕跡,這對項目管理是不利的。移動倉庫與備份相似,只需要把該模塊的目錄移動到新的路徑,便可以使用了。
如果不幸在備份之后有過一些修改并且執行了提交,當服務器出現問題需要恢復源代碼倉庫時,開發者提交新的修改就會出現版本不一致的錯誤。此時只需要把CVS相關的目錄和文件刪除,即可把新的修改提交。
6.更進一步的管理
CVSROOT目錄下還有很多其他功能,其中最重要的就是modules文件。這個文件定義了源代碼庫的模塊,下面是一個例子:
代碼: |
Linux Linux
Kernel Linux/kernel |
這個文件的內容按行排列,每一行定義一個模塊,首先是模塊名,然后是模塊路徑,這是相對于CVS根目錄的路徑。它定義了兩個模塊,第一個是Linux模塊,它位于Linux目錄中,第二個是Kernel模塊,這是Linux模塊的子模塊。
modules文件并非必須的,它的作用相當于一個索引,部分CVS客戶端軟件通過它可以快速找到相應的模塊,比如WinCVS。
7.協同開發的問題
默認方式下,CVS允許多個用戶編輯同一個文件,這對一個協作良好的團隊來說不會有什么問題,因為多個開發者同時修改同一個文件的同一部分是不正常的,這在項目管理中就應該避免,出現這種情況說明項目組內部沒有統一意見。而多個開發者修改文件的不同部分,CVS可以很好的管理。
如果覺得這種方式難以控制,CVS也提供了解決辦法,可以使用cvs admin -l進行鎖定,這樣一個開發者正在做修改時CVS就不會允許其他用戶checkout。這里順便說明一下文件格式的問題,對于文本格式,CVS可以進行歷史記錄比較、版本合并等工作,而二進制文件不支持這個操作,比如word文檔、圖片等就應該以二進制方式提交。對于二進制方式,由于無法進行合并,在無法保證只有一個用戶修改文件的情況下,建議使用加鎖方式進行修改。必須注意的是,修改完畢記得解鎖。
從1.6版本開始,CVS引入了監視的概念,這個功能可以讓用戶隨時了解當前誰在修改文件,并且CVS可以自動發送郵件給每一個監視的用戶告知最新的更新。
8.建立多個源代碼倉庫
如果需要管理多個開發組,而這些開發組之間不能互相訪問,可以有2個辦法:
a.共用一個端口,需要修改cvspserver文件,給server_args指定多個源代碼路徑,即多個—allow-root參數。由于xinetd的server_args長度有限制,可以在cvspserver文件中把服務器的設置重定向到另外一個文件,如:
代碼: |
server = /home/cvsroot/cvs.run |
然后創建/home/cvsroot/cvs.run文件,該文件必須可執行,內容格式為:
代碼: |
#!/bin/bash
/usr/bin/cvs -f \
--allow-root=/home/cvsroot/src1 \
--allow-root=/home/cvsroot/src2 \
pserver |
注意此時源代碼倉庫不再是/home/cvsroot,進行初始化的時候要分別對這兩個倉庫路徑進行初始化,而不再對/home/cvsroot路徑進行初始化。
b.采用不同的端口提供服務
重復第2步和第3步,為不同的源代碼倉庫創建不同服務名的啟動腳本,并為這些服務名指定不同的端口,初始化時也必須分別進行初始化。
Linux系統環境下的Socket編程詳細解析
什么是Socket
Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數或例程,程序員可以用它們來開發TCP/IP網絡上的應用程序。要學Internet上的TCP/IP網絡編程,必須理解Socket接口。
Socket接口設計者最先是將接口放在Unix操作系統里面的。如果了解Unix系統的輸入和輸出的話,就很容易了解Socket了。網絡的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似于打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨后的連接建立、數據傳輸等操作都是通過該Socket實現的。常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。
Socket建立
為了建立Socket,程序可以調用Socket函數,該函數返回一個類似于文件描述符的句柄。socket函數原型為:
int socket(int domain, int type, int protocol);
domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型:SOCK_STREAM 或SOCK_DGRAM,Socket接口還定義了原始Socket(SOCK_RAW),允許程序使用低層協議;protocol通常賦值"0"。Socket()調用返回一個整型socket描述符,你可以在后面的調用使用它。
Socket描述符是一個指向內部數據結構的指針,它指向描述符表入口。調用Socket函數時,socket執行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數據結構分配存儲空間。Socket執行體為你管理描述符表。
兩個網絡程序之間的一個網絡連接包括五種信息:通信協議、本地協議地址、本地主機端口、遠端主機地址和遠端協議端口。Socket數據結構中包含這五種信息。
Socket配置
通過socket調用返回一個socket描述符后,在使用socket進行網絡傳輸以前,必須配置該socket。面向連接的socket客戶端通過調用Connect函數在socket數據結構中保存本地和遠端信息。無連接socket的客戶端和服務端以及面向連接socket的服務端通過調用bind函數來配置本地信息。
Bind函數將socket與本機上的一個端口相關聯,隨后你就可以在該端口監聽服務請求。Bind函數原型為:
int bind(int sockfd,struct sockaddr *my_addr, int addrlen); Sockfd是調用socket函數返回的socket描述符,
my_addr是一個指向包含有本機IP地址及端口號等信息的sockaddr類型的指針;
addrlen常被設置為sizeof(struct sockaddr)。 struct sockaddr結構類型是用來保存socket信息的: struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char sa_data[14]; /* 14 字節的協議地址 */ }; sa_family一般為AF_INET,代表Internet(TCP/IP)地址族;sa_data 則包含該socket的IP地址和端口號。 另外還有一種結構類型: struct sockaddr_in { short int sin_family; /* 地址族 */ unsigned short int sin_port; /* 端口號 */ struct in_addr sin_addr; /* IP地址 */ unsigned char sin_zero[8]; /* 填充0 以保持與struct sockaddr同樣大小 */ };
|
這個結構更方便使用。sin_zero用來將sockaddr_in結構填充到與struct sockaddr同樣的長度,可以用bzero()或memset()函數將其置為零。指向sockaddr_in 的指針和指向sockaddr的指針可以相互轉換,這意味著如果一個函數所需參數類型是sockaddr時,你可以在函數調用的時候將一個指向sockaddr_in的指針轉換為指向sockaddr的指針;或者相反。
使用bind函數時,可以用下面的賦值實現自動獲得本機IP地址和隨機獲取一個沒有被占用的端口號:
my_addr.sin_port = 0; /* 系統隨機選擇一個未被使用的端口號 */
my_addr.sin_addr.s_addr = INADDR_ANY; /* 填入本機IP地址 */
通過將my_addr.sin_port置為0,函數會自動為你選擇一個未占用的端口來使用。同樣,通過將my_addr.sin_addr.s_addr置為INADDR_ANY,系統會自動填入本機IP地址。
注意在使用bind函數是需要將sin_port和sin_addr轉換成為網絡字節優先順序;而sin_addr則不需要轉換。
計算機數據存儲有兩種字節優先順序:高位字節優先和低位字節優先。Internet上數據以高位字節優先順序在網絡上傳輸,所以對于在內部是以低位字節優先方式存儲數據的機器,在Internet上傳輸數據時就需要進行轉換,否則就會出現數據不一致。
下面是幾個字節順序轉換函數:
·htonl():把32位值從主機字節序轉換成網絡字節序 ·htons():把16位值從主機字節序轉換成網絡字節序 ·ntohl():把32位值從網絡字節序轉換成主機字節序 ·ntohs():把16位值從網絡字節序轉換成主機字節序
|
Bind()函數在成功被調用時返回0;出現錯誤時返回"-1"并將errno置為相應的錯誤號。需要注意的是,在調用bind函數時一般不要將端口號置為小于1024的值,因為1到1024是保留端口號,你可以選擇大于1024中的任何一個沒有被占用的端口號。
連接建立
面向連接的客戶程序使用Connect函數來配置socket并與遠端服務器建立一個TCP連接,其函數原型為:
int connect(int sockfd, struct sockaddr *serv_addr,int addrlen);
Sockfd是socket函數返回的socket描述符;serv_addr是包含遠端主機IP地址和端口號的指針;addrlen是遠端地質結構的長度。Connect函數在出現錯誤時返回-1,并且設置errno為相應的錯誤碼。進行客戶端程序設計無須調用bind(),因為這種情況下只需知道目的機器的IP地址,而客戶通過哪個端口與服務器建立連接并不需要關心,socket執行體為你的程序自動選擇一個未被占用的端口,并通知你的程序數據什么時候到打斷口。
Connect函數啟動和遠端主機的直接連接。只有面向連接的客戶程序使用socket時才需要將此socket與遠端主機相連。無連接協議從不建立直接連接。面向連接的服務器也從不啟動一個連接,它只是被動的在協議端口監聽客戶的請求。
Listen函數使socket處于被動的監聽模式,并為該socket建立一個輸入數據隊列,將到達的服務請求保存在此隊列中,直到程序處理它們。
int listen(int sockfd, int backlog);
Sockfd是Socket系統調用返回的socket 描述符;backlog指定在請求隊列中允許的最大請求數,進入的連接請求將在隊列中等待accept()它們(參考下文)。Backlog對隊列中等待服務的請求的數目進行了限制,大多數系統缺省值為20。如果一個服務請求到來時,輸入隊列已滿,該socket將拒絕連接請求,客戶將收到一個出錯信息。
當出現錯誤時listen函數返回-1,并置相應的errno錯誤碼。
accept()函數讓服務器接收客戶的連接請求。在建立好輸入隊列后,服務器就調用accept函數,然后睡眠并等待客戶的連接請求。
int accept(int sockfd, void *addr, int *addrlen);
sockfd是被監聽的socket描述符,addr通常是一個指向sockaddr_in變量的指針,該變量用來存放提出連接請求服務的主機的信息(某臺主機從某個端口發出該請求);addrten通常為一個指向值為sizeof(struct sockaddr_in)的整型指針變量。出現錯誤時accept函數返回-1并置相應的errno值。
首先,當accept函數監視的socket收到連接請求時,socket執行體將建立一個新的socket,執行體將這個新socket和請求連接進程的地址聯系起來,收到服務請求的初始socket仍可以繼續在以前的 socket上監聽,同時可以在新的socket描述符上進行數據傳輸操作。
數據傳輸
Send()和recv()這兩個函數用于面向連接的socket上進行數據傳輸。
Send()函數原型為:
int send(int sockfd, const void *msg, int len, int flags);
Sockfd是你想用來傳輸數據的socket描述符;msg是一個指向要發送數據的指針;Len是以字節為單位的數據的長度;flags一般情況下置為0(關于該參數的用法可參照man手冊)。
Send()函數返回實際上發送出的字節數,可能會少于你希望發送的數據。在程序中應該將send()的返回值與欲發送的字節數進行比較。當send()返回值與len不匹配時,應該對這種情況進行處理。
char *msg = "Hello!";
int len, bytes_sent;
……
len = strlen(msg);
bytes_sent = send(sockfd, msg,len,0);
……
recv()函數原型為:
int recv(int sockfd,void *buf,int len,unsigned int flags);
Sockfd是接受數據的socket描述符;buf 是存放接收數據的緩沖區;len是緩沖的長度。Flags也被置為0。Recv()返回實際上接收的字節數,當出現錯誤時,返回-1并置相應的errno值。
Sendto()和recvfrom()用于在無連接的數據報socket方式下進行數據傳輸。由于本地socket并沒有與遠端機器建立連接,所以在發送數據時應指明目的地址。
Sendto()函數原型為:
int sendto(int sockfd, const void *msg,int len,unsigned int flags,const struct sockaddr *to, int tolen);
該函數比send()函數多了兩個參數,to表示目地機的IP地址和端口號信息,而tolen常常被賦值為sizeof (struct sockaddr)。Sendto 函數也返回實際發送的數據字節長度或在出現發送錯誤時返回-1。
Recvfrom()函數原型為:
int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr *from,int *fromlen);
from是一個struct sockaddr類型的變量,該變量保存源機的IP地址及端口號。fromlen常置為sizeof (struct sockaddr)。當recvfrom()返回時,fromlen包含實際存入from中的數據字節數。Recvfrom()函數返回接收到的字節數或當出現錯誤時返回
1,并置相應的errno。
如果你對數據報socket調用了connect()函數時,你也可以利用send()和recv()進行數據傳輸,但該socket仍然是數據報socket,并且利用傳輸層的UDP服務。但在發送或接收數據報時,內核會自動為之加上目地和源地址信息。
結束傳輸
當所有的數據操作結束以后,你可以調用close()函數來釋放該socket,從而停止在該socket上的任何數據操作:
close(sockfd);
你也可以調用shutdown()函數來關閉該socket。該函數允許你只停止在某個方向上的數據傳輸,而一個方向上的數據傳輸繼續進行。如你可以關閉某socket的寫操作而允許繼續在該socket上接受數據,直至讀入所有數據。
int shutdown(int sockfd,int how);
Sockfd是需要關閉的socket的描述符。參數 how允許為shutdown操作選擇以下幾種方式:
·0-------不允許繼續接收數據
·1-------不允許繼續發送數據
·2-------不允許繼續發送和接收數據,
·均為允許則調用close ()
shutdown在操作成功時返回0,在出現錯誤時返回-1并置相應errno。
面向連接的Socket實例
代碼實例中的服務器通過socket連接向客戶端發送字符串"Hello, you are connected!"。只要在服務器上運行該服務器軟件,在客戶端運行客戶軟件,客戶端就會收到該字符串。
該服務器軟件代碼如下:
#include #include #include #include #include #include #include #include #define SERVPORT 3333 /*服務器監聽端口號 */ #define BACKLOG 10 /* 最大同時連接請求數 */ main() { int sockfd,client_fd; /*sock_fd:監聽socket;client_fd:數據傳輸socket */ struct sockaddr_in my_addr; /* 本機地址信息 */ struct sockaddr_in remote_addr; /* 客戶端地址信息 */ if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket創建出錯!"); exit(1); } my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVPORT); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero),8); if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) \ == -1) { perror("bind出錯!"); exit(1); } if (listen(sockfd, BACKLOG) == -1) { perror("listen出錯!"); exit(1); } while(1) { sin_size = sizeof(struct sockaddr_in); if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, \ &sin_size)) == -1) { perror("accept出錯"); continue; } printf("received a connection from %s\n", inet_ntoa(remote_addr.sin_addr)); if (!fork()) { /* 子進程代碼段 */ if (send(client_fd, "Hello, you are connected!\n", 26, 0) == -1) perror("send出錯!"); close(client_fd); exit(0); } close(client_fd); } } }
|
服務器的工作流程是這樣的:首先調用socket函數創建一個Socket,然后調用bind函數將其與本機地址以及一個本地端口號綁定,然后調用listen在相應的socket上監聽,當accpet接收到一個連接服務請求時,將生成一個新的socket。服務器顯示該客戶機的IP地址,并通過新的socket向客戶端發送字符串"Hello,you are connected!"。最后關閉該socket。
代碼實例中的fork()函數生成一個子進程來處理數據傳輸部分,fork()語句對于子進程返回的值為0。所以包含fork函數的if語句是子進程代碼部分,它與if語句后面的父進程代碼部分是并發執行的。
客戶端程序代碼如下:
#include #include #include #include #include #include #include #include #define SERVPORT 3333 #define MAXDATASIZE 100 /*每次最大數據傳輸量 */ main(int argc, char *argv[]){ int sockfd, recvbytes; char buf[MAXDATASIZE]; struct hostent *host; struct sockaddr_in serv_addr; if (argc < 2) { fprintf(stderr,"Please enter the server's hostname!\n"); exit(1); } if((host=gethostbyname(argv[1]))==NULL) { herror("gethostbyname出錯!"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ perror("socket創建出錯!"); exit(1); } serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(SERVPORT); serv_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(serv_addr.sin_zero),8); if (connect(sockfd, (struct sockaddr *)&serv_addr, \ sizeof(struct sockaddr)) == -1) { perror("connect出錯!"); exit(1); } if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) ==-1) { perror("recv出錯!"); exit(1); } buf[recvbytes] = '\0'; printf("Received: %s",buf); close(sockfd); }
|
客戶端程序首先通過服務器域名獲得服務器的IP地址,然后創建一個socket,調用connect函數與服務器建立連接,連接成功之后接收從服務器發送過來的數據,最后關閉socket。
函數gethostbyname()是完成域名轉換的。由于IP地址難以記憶和讀寫,所以為了方便,人們常常用域名來表示主機,這就需要進行域名和IP地址的轉換。函數原型為:
struct hostent *gethostbyname(const char *name); 函數返回為hosten的結構類型,它的定義如下: struct hostent { char *h_name; /* 主機的官方域名 */ char **h_aliases; /* 一個以NULL結尾的主機別名數組 */ int h_addrtype; /* 返回的地址類型,在Internet環境下為AF-INET */ int h_length; /* 地址的字節長度 */ char **h_addr_list; /* 一個以0結尾的數組,包含該主機的所有地址*/ }; #define h_addr h_addr_list[0] /*在h-addr-list中的第一個地址*/
|
當 gethostname()調用成功時,返回指向struct hosten的指針,當調用失敗時返回-1。當調用gethostbyname時,你不能使用perror()函數來輸出錯誤信息,而應該使用herror()函數來輸出。
無連接的客戶/服務器程序的在原理上和連接的客戶/服務器是一樣的,兩者的區別在于無連接的客戶/服務器中的客戶一般不需要建立連接,而且在發送接收數據時,需要指定遠端機的地址。
阻塞和非阻塞
阻塞函數在完成其指定的任務以前不允許程序調用另一個函數。例如,程序執行一個讀數據的函數調用時,在此函數完成讀操作以前將不會執行下一程序語句。當服務器運行到accept語句時,而沒有客戶連接服務請求到來,服務器就會停止在accept語句上等待連接服務請求的到來。這種情況稱為阻塞(blocking)。而非阻塞操作則可以立即完成。比如,如果你希望服務器僅僅注意檢查是否有客戶在等待連接,有就接受連接,否則就繼續做其他事情,則可以通過將Socket設置為非阻塞方式來實現。非阻塞socket在沒有客戶在等待時就使accept調用立即返回。
#include
#include
……
sockfd = socket(AF_INET,SOCK_STREAM,0);
fcntl(sockfd,F_SETFL,O_NONBLOCK);
……
通過設置socket為非阻塞方式,可以實現"輪詢"若干Socket。當企圖從一個沒有數據等待處理的非阻塞Socket讀入數據時,函數將立即返回,返回值為-1,并置errno值為EWOULDBLOCK。但是這種"輪詢"會使CPU處于忙等待方式,從而降低性能,浪費系統資源。而調用select()會有效地解決這個問題,它允許你把進程本身掛起來,而同時使系統內核監聽所要求的一組文件描述符的任何活動,只要確認在任何被監控的文件描述符上出現活動,select()調用將返回指示該文件描述符已準備好的信息,從而實現了為進程選出隨機的變化,而不必由進程本身對輸入進行測試而浪費CPU開銷。Select函數原型為:
int select(int numfds,fd_set *readfds,fd_set *writefds,
fd_set *exceptfds,struct timeval *timeout);
其中readfds、writefds、exceptfds分別是被select()監視的讀、寫和異常處理的文件描述符集合。如果你希望確定是否可以從標準輸入和某個socket描述符讀取數據,你只需要將標準輸入的文件描述符0和相應的sockdtfd加入到readfds集合中;numfds的值是需要檢查的號碼最高的文件描述符加1,這個例子中numfds的值應為sockfd+1;當select返回時,readfds將被修改,指示某個文件描述符已經準備被讀取,你可以通過FD_ISSSET()來測試。為了實現fd_set中對應的文件描述符的設置、復位和測試,它提供了一組宏:
FD_ZERO(fd_set *set)----清除一個文件描述符集;
FD_SET(int fd,fd_set *set)----將一個文件描述符加入文件描述符集中;
FD_CLR(int fd,fd_set *set)----將一個文件描述符從文件描述符集中清除;
FD_ISSET(int fd,fd_set *set)----試判斷是否文件描述符被置位。
Timeout參數是一個指向struct timeval類型的指針,它可以使select()在等待timeout長時間后沒有文件描述符準備好即返回。struct timeval數據結構為:
struct timeval {
int tv_sec; /* seconds */
int tv_usec; /* microseconds */ };
POP3客戶端實例
下面的代碼實例基于POP3的客戶協議,與郵件服務器連接并取回指定用戶帳號的郵件。與郵件服務器交互的命令存儲在字符串數組POPMessage中,程序通過一個do-while循環依次發送這些命令。
#include #include #include #include #include #include #include #include #define POP3SERVPORT 110 #define MAXDATASIZE 4096
main(int argc, char *argv[]){ int sockfd; struct hostent *host; struct sockaddr_in serv_addr; char *POPMessage[]={ "USER userid\r\n", "PASS password\r\n", "STAT\r\n", "LIST\r\n", "RETR 1\r\n", "DELE 1\r\n", "QUIT\r\n", NULL }; int iLength; int iMsg=0; int iEnd=0; char buf[MAXDATASIZE];
if((host=gethostbyname("your.server"))==NULL) { perror("gethostbyname error"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ perror("socket error"); exit(1); } serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(POP3SERVPORT); serv_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(serv_addr.sin_zero),8); if (connect(sockfd, (struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1){ perror("connect error"); exit(1); }
do { send(sockfd,POPMessage[iMsg],strlen(POPMessage[iMsg]),0); printf("have sent: %s",POPMessage[iMsg]);
iLength=recv(sockfd,buf+iEnd,sizeof(buf)-iEnd,0); iEnd+=iLength; buf[iEnd]='\0'; printf("received: %s,%d\n",buf,iMsg);
iMsg++; } while (POPMessage[iMsg]);
close(sockfd); }
|
搜狐博客 > 江湖一聲笑 > 日志 > 經濟述評 2007-04-20 | 房地產綁架了中國經濟(王超,轉) 房地產綁架了中國經濟,全國性的泡沫已經形成!!!
標簽: 投資 呼和浩特 上海 深圳 房價
經過幾年的持續上漲,深圳、上海、杭州、北京、廣州等一線城市的房價,已達到“一套房消滅一個百萬富翁”的水平。
高速膨脹的地產,不但在不公正擠占社會財富,也擠占了其他產業的發展空間。
價格高的商品房,不但抬高了社會生產、生活成本,削弱了中國在全球的競爭力,也讓中國經濟變得脆弱,出口依賴度直線上升。
經過三級市場的成功滲透,在一些城市,房產市場形成了“先富起來的人對未富者進行掠奪”的市場格局。
地產綁架了中國經濟
十五期間,一些地方政府相繼將“地產”列為“支柱產業”的結果,導致這一行業迅速跨越它在產業鏈中本有的位置,成為中國經濟中的一個“異數”。脫離社會實際支付水平的房價和龐大的開發規模,在使“地產行業”不正當占用了過多社會財富的同時,大大削弱了中國居民在其他領域的購買能力,并對其他產業的發展形成強硬擠壓。 “2005年,中國經濟出口依賴度接近70%”這一數據,實際也在傳遞這樣一個信號:在醫療、教育、尤其是價格居高不下的房產的交替作用下,中國本就不均衡的市場購買力在進一步萎縮,以致不得不加重對國外市場的依賴,中國經濟的脆弱性幾乎已到了“生死存亡”的危險關頭。
可以說,連續5年的“地產高燒”,已給中國經濟、社會的可持續發展注入了多種隱患,近年各主要城市由地產開發支撐起來的、看起來讓人滿意的GDP增長數據,一經細分,完全可以成為這些隱患嚴重性、廣泛性、真實性的證據。而更為嚴峻的是,作為不動產,房地產實際是一種終端行業,牽涉著數十種上游產業,比如從2004年開始,房地產就消耗了國內差不多一半的水泥和鋼材,這意味著,由房地產直接按放在中國經濟中的隱形炸彈,除了目前銀行已知的近4萬億房貸外,還有數十個相關行業為滿足房地產膨脹所帶來的硬性需求、擴大產能所進行的數目龐大的基礎投資。它的崩潰,不僅僅只關涉到我國的金融安全,同時也關涉到我國的產業安全。而2005、2006兩年,國內絕大部分城市房價在國家連續出臺的宏觀調控政策下,繼續強硬上揚的事實,似乎在進一步表明:地產綁架了中國經濟。
尋找“湯臣一品”
2006年8月以11萬每平方米開盤的上海豪宅“湯臣一品”,在《上海證券報》爆出其地價僅為每平方米4000多元后,被眾多網絡人士一致推為“中國地產泡沫與暴利”的最佳代表。
但是,另人沒想到的是,這個熱遍網絡、堪稱中國最知名的樓盤,竟是這樣難找。
據悉,2007年1月7日,在上海外國語學院附近,一記者連續攔了5輛出租車,告知“去湯臣一品”,5位司機均一臉茫然,即使記者一再解釋這個小區“坐落在陸家嘴,距金茂不遠、是中國最昂貴的樓盤”,這些本該對上海地理滾瓜爛熟的司機還是大搖其頭,表示“從沒聽說過,不知在哪里”,無奈之下,記者只好請出租司機先到陸家嘴,邊轉悠邊問。
進入陸家嘴地盤,出租司機連續三次下車,用本地話向路邊的賣店、飯店打聽“湯臣一品”在哪里?都失望而歸,在漫無目的地搜尋了幾條街后,司機才在一座快要竣工的寫字樓前,從一個負責施工的技術員那里打聽到了湯臣一品的確切位置。原來這座聲名在外的“中國最昂貴的樓盤”,在距金茂大約一站地的花園橋西路和拾步街之間。
在“湯臣一品”小區的圍墻外,這個年近50歲的司機在瞇著眼仔細看了一番矗立在車窗外的“中國最昂貴的樓盤”后,突然沒有節制地大笑起來,邊笑邊搖頭,嘴里還不住叨咕:“湯臣一品,每平方米11萬”,每叨咕一遍就笑得更厲害,他瞅著湯臣一品裝飾豪華卻空空蕩蕩的售樓中心,最后竟笑趴在了方向盤上。出租司機的突然失態,讓約10米外兩個本來筆直站著的保安變得非常尷尬,訕笑著望著我們。
過了約3分鐘,出租司機才慢慢恢復常態,他向記者表示歉意,說自己突然莫名其妙想起了《大腕》里那個說起話來滔滔不絕的神經病。
湯臣一品所在的區域,被稱為小陸家嘴,這個面積僅1.7平方公里的彈丸之地,密布著中國最昂貴的豪宅,半年前,一個當地記者計算出,按照當時該區域的平均房價,僅在1/10的地面建造40層的高樓,其市值就與上海股票交易所的全部股票市值相當。“任何一幢樓都抵得上幾家上市公司的流通市值”。
一業內人士告訴記者,雖然自己并不看好湯臣一品的銷售前景,但卻無法忽視這個樓盤為上海乃至中國地產帶來的強烈象征意味。
“每平方米11萬”所傳播的地產價值暗示,在為上海現有高價樓盤的價格敏感度松了綁的同時,可以拉高周邊、上海其他區域乃至全國多少高檔樓宇的售價?同時他認為,湯臣一品在國家連續三年、一年比一年嚴厲的宏觀調控政策下橫空出世,是目前中國地產有些失控的最好注腳。
雖然,上海號稱最近8個月商品房價格指數在連續下跌,但實際上,上海內環的大多數一手房、二手房依然處于微升狀態,2006年,上海商品房總竣工約3000萬平方米,而同期銷售僅1000萬平米出頭,當年積壓近2000萬平米已成定局。
由于民間輿論和宏觀調控帶來的雙重壓力,從2005年上半年開始,上海調整了自己對地產的宣傳定位,開發商與消費者隨之進入明顯相峙狀態,但國內其他城市卻迅速接過了上海手里的接力棒。首先是深圳,從2005年9月份開始,當地房價以每月5%左右的速度一路狂漲,有的月份上漲幅度甚至突破10%,到2006年初,深圳關內已經鮮有一萬以下的一手房,二手房價格也飆高到8000元每平方,隨后,北京開始發力,2006年6、7、8、9月,北京房價同比分別上升11.2%、11.1%、11.4%和10.3%,不斷“領跑”的結果是,至冬季房展,北京五環內一萬以下的一手房幾乎絕跡,三環周邊的二手房均價追至8000,12月底,這些地域的二手房也突破萬元大關。
廣州、南京、福州、武漢、成都、沈陽、哈爾濱、烏魯木齊、西安、大連、青島、寧波、蘇州……國內幾乎所有區域經濟中心城市,都跟在北京、深圳這兩部經濟引擎后面,價格一路追高;這樣的氛圍,甚至讓公認為是中國地產過熱的重災區杭州,在2006年也開始蠢蠢欲動,雖然早在2004年,就有人指責“杭州開發商囤積的土地,足夠杭州開發五至十年”,但2006年初,當地媒體用“全線飄紅”來形容了政府當年舉行的第一次土地拍賣;這表明,導致杭州房價上漲的市場機制并沒有改變,由地方政府、開發商及其附屬利益團體組成的“鐵三角”,依然把控著當地市場的節奏和走向。
2006年3月,一些與地產界關系密切的上海本土專家,以學者身份四處接受采訪,宣稱上海地產觀望期已經結束;國內包括上海當地不同地段間的區域差異是一種客觀存在,這種差異決定了上海黃金地段的高檔樓盤還有上漲空間;在市場經濟環境下,投機是一種正常的經濟行為,可以拉動產業的快速整合,打壓這種行為有違市場經濟規則;政府不應過多插手上海地產問題,而應交由市場去自行調節。
6月,呼和浩特市政府悍然反擊新華社關于“政府這只有形的手在拉高當地房價”的新聞報道,將其拔高到影響“民族和諧”這一政治高度,強調呼和浩特的地產開發完全是“按照中央核準的規則在進行”,呼和浩特的房價“是本地經濟和城市化快速發展的結果”。呼和浩特政府從“2004年至今,投資于經濟適用房的投資占整個房產開發投資的54%”,所以“呼和浩特商品房的結構也是健康的”。不過,5個月后,由該市房產局提供的“2006年1-10月呼和浩特房地產市場形勢分析”卻顯示,呼和浩特這一時間段的“經濟適用房施工面積占住宅施工面積的比重為8.72%”。且這一比例不但比去年同期“提高了1.13個百分點”;而且環比“也呈現較明顯的提高”;統計顯示,“發展健康”的呼和浩特地產開發市場,商品房均價已從“2004年的1590元每平方竄至2006年的3481元每平方”,短短兩年升幅高達218.89%。同時,與高達3481元的均價形成鮮明對比的是,2006年1-10月該市的土地購置費每平方米僅為509元,2005年更低至每平米374元。
2006年1-10月,呼和浩特商品房竣工率僅13.02%,去年同期更低,為11.23%,不到全國平均竣工率的1/3,這意味著:呼和浩特房地產開發商囤積土地的跡象非常明顯。與這一低竣工率對比鮮明的是,呼和浩特住宅銷售速度遠高于同期的竣工率,1-10月, “呼和浩特共竣工商業住宅竣工58.69萬平米,銷售76.98萬平米”,實際銷售率出現了國內其它城市罕見的一個數字:131.16%,其中僅在10月份,呼和浩特商品房預售面積就達13.43萬平米,比去年同期狂增206.6%,有專家認為,聯系它超低的竣工率來看,這一反常比例,除可能有呼和浩特市政府姿態強硬的聲明引起市場追風效應外,也不排除“開發商在人為控制市場供應量”。
房價上漲之源
究竟是什么因素導致了最近幾年中國城市房價的持續上漲?
在眾多關于房地產上漲因素的分析中,幾乎沒有人注意到深圳于2001年3月26日開始正式實施的《深圳市政府100號令》,事實上,由該法令所確立起來的國內地產市場的運作原則和模式,與最近幾年全國范圍房價一路追高有著極深的淵源。
由于內容主要是由“當地土地主管部門在親自操刀”,加上具體參與者對“市場經濟的復雜性知之甚少”,過于迷信香港經驗,導致《深圳市政府100號令》這一有“國內第一個規范地產市場運作規則”之稱、本意為“防止劃撥、協議轉讓土地過程發生腐敗”的地方法規,在客觀上幫助主管部門完成了對土地和房產開發的統控,并否定了其他市場主體的功能和作用,強行終止了此前存在于商品住宅市場的多樣化特征,將滿足居民住宅需求路徑高度統一在了“以商品房為主體的市場模式上”。
2001年前,城鎮居民的住宅解決途徑有《城鎮個人建造住宅管理辦法》、《國務院關于進一步深化城鎮住房制度改革、加快住房建設的通知》兩個法規可依,這兩個法規一個在“鼓勵城鎮個人建造住宅”,另一個則明確要求各地“建立和完善以經濟適用住房為主的住房供應體系”,也就是說。各地商品住宅的市場主體應為“經濟適用房”。
各地依據這兩個法規形成的市場體系,讓當時的城鎮居民至少可以通過以下幾種途徑滿足住房需求:集資建房、合作建房、經濟適用房和純粹的商品房。
但是,“100號令”通過確立“土地局是土地交易唯一合法的部門”,將土地交易、包括第二次、第三次土地交易大權,收歸一個部門統控,要求深圳所有土地及其地上附屬物的交易,都必須由土地局直屬機構----深圳市土地交易中心以“拍賣為主、掛賣為輔”的方式 “公開、公正、公平”進行,這些規定,在符合了形式上的規范與透明外,也衍生出了“地產市場功能單一、難以承載城市多樣化的用房需求,土地局職能從此前以管理和監督為主變成了坐莊城市地產開發的‘土地爺’、可以輕易調控房產開發的規模與節奏、權力一枝獨大,政府與開發商易形成市場同盟、直接與民爭利”等弊端;同時,由于合作建房、集資建房的操作路徑與這一法規所確立的交易規則無法兼容,導致商品房市場的多元化特征被迫實際終止,加上本應形成制約關系的房產、土地、規劃、甚至勘探部門,在深圳全部歸口在土地局,這無疑進一步強化了土地局對整個市場的集權程度。有學者一針見血地指出,這一法規實質具有這樣的含義:(深圳)政府把老百姓的住房利益整體出售給了開發商。
基于當地各界對《深圳市政府100號令》意見極大,當時在新華社廣東分社就職的記者曾于2001年9月,三次前往深圳進行專題調研,得到的情況反饋是:為了反擊社會負面評價,鞏固這一政令,深圳土地局不惜耗費巨資、以每月支付10多萬宣傳費為代價,邀請國內外知名媒體前來為它“唱贊歌”,同時還廣邀其他省市的同行前來觀摩“這一經驗”,試圖通過“以最快的速度在國內推廣”的方式,讓其成為既成事實。記者曾在深圳土地交易大廳的貴賓記事本上看到,沈陽、山西、安徽、河南等地的土地管理部門官員,已在那個豪華的記事本上留下了不少溢美之辭,此外“還有不少省市的主管部門官員也將陸續到深圳土地局來考察”。
記者在隨后形成的內參報告中,曾明確擔憂“這一法規實際終止了此前地產市場其他市場主體的合法地位,導致市場發育嚴重單極化,重新回到壟斷狀態,實質是市場經濟的一個退步,并將給房產市場帶來不可預知的發展隱患”。
不過,深圳市的“新舉措”,卻讓一些財力匱乏、當地房地產市場又啟動艱難的地方政府如獲至寶。迅速按這一口徑調整了本地房地產市場的結構與運作模式:土地房產局坐莊房產開發市場,有購買需求的城市居民則幾乎全部被驅趕進了商品房市場。
效果立竿見影。
以沈陽為例,2001年,沈陽房地產營業額約55億,虧損2億余元,這一年,整個遼寧省的土地轉讓收入僅為1.6億元。但從2002年實行“土地集中拍賣”政策后,沈陽地方財政來自房地產收入直線上升,當年,沈陽地方財政近1/3來自土地出讓金和房地產稅收。牛刀小試嘗到甜頭后,沈陽——這個中國最重要的重型機械制造基地,索性將房地產列為了該市的支柱產業,2003年,它把超過1/3的固定資產投資投向了地產,同時,約1/3的地方財政收入也來自房地產開發,2005年,在遭遇宏觀調控之后,沈陽地產投資依然保持了超過20%的增長速度,僅收取的土地出讓金和配套費用就高達42億。
由于這一模式下的房地產開發能快速拉高當地GDP、并迅速改善地方政府的財政狀況,相當部分地方政府以前所未有的熱忱投入到了房地產大開發中,“以經濟建設為中心”被實際壓縮成了“以房產開發為中心”。同時,這一標榜“公開、公平、公正”的市場模式,并沒有遏制住房地產領域的腐敗,反而讓腐敗愈演愈烈,據知名旅美學者徐滇慶介紹,經不完全統計,最近幾年,中國主要城市流通在房地產市場的資金,有高達1000多億不知去向。
在市場經濟里“后知后覺”的呼和浩特,由于開始階段沒有跟風,直到2004年當地商品房均價才1590元/米,看到其他兄弟城市干得風生水起,呼和浩特失落之余,終于琢磨出了這其中簡單的道理,于是2004年該市也如法炮制,將“土地收儲中心”調整為政府直屬機構,開始通過統一的“掛拍賣”坐莊房產開發市場,果然,遠在內蒙古大草原的呼和浩特,房產市場也頓時風生水起,2005年,該市商品房均價達到2500元左右,2006年,均價接近3500元。在呼和浩特此輪漲價旋風中,政府每年拿到了幾億的小頭,開發商拿到了十幾億的大頭,當地老百姓則得為“這一規范的市場運作機制”多掏十幾億房款。
一組可怕的數據
在一個國家的產業鏈條中,房地產究竟應該處在一個什么樣的位置?
上海交通大學經濟管理學院孟憲忠教授表示:在一個經濟體系的產業鏈中,房地產既是一種基礎性產業,也是一個對其它產業的發展具有嚴重依賴性的產業。后一個角度,表示房地產市場與其他經濟活動所創造的財富值之間,存在一個對等的比值關系。通俗地說,就是一個社會創造財富的多少,決定它房地產市場的繁榮程度和房價高低。
綜合世界各國的情況看,一個健康的房地產市場,其在社會總投資中所占的份額應在10%左右,超過這個份額就會出現投資過熱,它帶來的負面影響是降低社會資源配置的合理程度,引起社會不必要的財富損耗,甚至成為社會財富的殺手,并損害產業間的平衡協調。從經濟健康和可持續的角度,商品房價格與當地家庭年均收入之間,也有一個比值,這個比值根據不同國情,在1:3至1:6之間,超過這一比值,房地產就不但在不正當剝奪購買者的財富,也會從整體上削弱社會對其他產品的購買能力,給其他產業的發展帶來障礙。
按照這一判斷標準,最近幾年,國內主要城市的經濟發展數據,傳達出的是一個社會資源長期配置錯位、明顯存在嚴重經濟隱患的信息——
浙江經濟圈的中心城市杭州,2003年社會固定資產投資1006.18億元,其中房地產開發328.54億元,占全部固定資產投資的32.6%,全市財政總收入達329.71億元,土地出讓所得109.29億元;2004年社會固定資產投資1205.18億元,其中房地產開發企業完成投資328.54億元,占當年社會固定資產投資的27.26%。2005年,該市房地產開發投資更上層樓,達到410.57億元。
珠三角重鎮廣州,2003年完成全社會固定資產投資1157.77億元,其中房地產開發投資405.94億元,占35.1%。2004年完成全社會固定資產投資1321.96億元,其中房地產開發投資440.81億元,占33.3%,2005年完成社會固定資產投資1445.33億元,其中房地產開發投資488.86億元,占33.7%。
華東六省一市的經濟龍頭上海,2003年完成固定資產投資2452.11億元,其中房地產開發投資901.24億元,比重為36.8%。2004年完成全社會固定資產投資3084.66億元,其中房地產開發投資1175.46億元。比重為38.1%,2005年完成全社會固定資產投資總額3542.55億元,其中房地產開發投資1246.86億元,比重為35.2%。
中國改革的窗口深圳,2003年完成全社會固定資產投資額946.49億元,其中房地產開發投資410.06億元,占43.4%;2004年全社會固定資產投資額1090.14億元,其中房地產開發投資432.01億元,占39.6%,全年完成地方財政一般預算收入321.75億元,國土基金總收入128.46億元,2005年完成全社會固定資產投資1176.13億元,其中房地產開發投資418.76億元,占33.%。
中國政治中心、中國北方重要的經濟中心城市北京,2003年完成全社會固定資產投資2157.1億元,其中房地產開發投資1202.5億元,比重55.7%,且僅比上一年多了1.2個百分點。2004年,北京全社會固定資產投資2528.3億元,其中房地產開發投資1473.3億元,比重為58.2%,2005年完成全社會固定資產投資2827.2億元,其中房地產開發投資1525億元,比重為53.9%。
中國北方重工制造中心沈陽,2003年完成全社會固定資產投資582.6億元,其中房地產開發投資177.3億元,比重為30.1%;2004年全社會固定資產投資971.4億元,其中房地產開發完成投資342.6億元,比重為35.2%,2005年固定資產投資完成1363.2億元,其中房地產完成投資413.6億元,比重為30.3%。
中國經濟大省省會南京,2003年完成全社會固定資產投資額954.04億元,其中房地產開發投資183.80億元,比重為19%;2004年完成全社會固定資產投資額1201.88億元,其中房地產開發投資292.88億元,比重為24.3%,2005年完成全社會固定資產投資額1402.72億元,其中房地產開發完成投資額296.14億元,比重為21.1%。
華中樞紐武漢,2003年全社會固定資產投資完成645.06億元,其中房地產投資169.55億元,比重為26.2%,2004年全社會固定資產投資完成822.20億元,其中房地產投資233.30億元,比重為28.3%,2005年全市完成全社會固定資產投資1055.18億元,其中房地產開發投資297.99億元,比重為28.2%。
這些城市,都是中國最重要的經濟發動機或區域經濟中心,但最近5年來,這些發動機都把自己的經濟引擎按放在了“不動產”上,將超過30%的全社會固定資產投資投向了房地產,有的這一比例更高達50%,遠遠高于10%的正常水平。由于房地產的強力拉動,它所必然引起的投資過熱也相應凸現,雖然從2002年開始,國家宏觀經濟部門就開始不斷警告我國經濟出現了投資過熱,但依然無法阻擋這股氣勢兇猛的洪流,2003年,我國全社會固定資產投資增26.7% ,2004年第一季度,全社會投資突然增速,同比增長高達43%,不但比上年同期加快了15.2個百分點,也遠高于1992和1993年我國經濟過熱時全社會固定資產投資所創下的29.1%和35.2%這一增速;2004年全年,我國全社會固定資產投資達70073億元,增25.8%;2005年我國全社會固定資產投資88604億元,增25.7%;2006年上半年,全國固定資產投資較去年同期增31.3%。此外,我國在建項目規模2005年為27萬億元,2006年底則飆高至32萬億元。
一從事宏觀經濟研究的專家告訴記者:很難想象各地政府為什么會進行這樣的投資分配,因為這給整個經濟結構帶來的破壞和隱患極其明顯,房地產膨脹所帶來的“真實而強勁”的市場需求,必然帶動與其相關的數十個產業的膨脹,所以房地產熱一定會引發整個社會投資的過熱。
他表示,地方政府通過整合強大的政策和市場資源,可以在短時間內維持房地產市場份額在整個社會產值中占到一個較高比例,但這樣的高比例絕不可能長期持續,這是由房地產在產業鏈中本有的位置所決定的,于是問題出現了-------由房地產拉高的上游相關產業的產能很快就將被懸空,如果這個懸空的程度大到了產業自身無力消解,就會發生我們擔心的經濟蕭條甚至產業崩潰。
宏觀調控發生后,一些學者從房地產拉動了多少份額的產品消費,以此證明房地產對GDP的重要貢獻,完全可以從另一個層面求得房地產膨脹導致的產業隱患規模。
“最近幾年,各地政府對GDP的理解存在一個誤區,就是只重數字增長卻不分析經濟行為的合理性,事實上,GDP的參考價值與被分析對象行為的理性程度是成正比的,經濟行為愈理性,GDP的參考價值愈高,反之則愈低,所以,針對目前各地贊歌不斷的GDP,可能我們最該去關注的是,這些GDP背后的經濟行為的理性程度究竟有多高?現在中央倡導的科學發展觀,不僅僅要求各地不得以‘經濟發展’替代‘社會發展’,而且也內含著提高決策、資源配置、經濟行為理性的訴求”。
一場危險的游戲
除投資規模過于龐大外,房地產另一個問題更為突出——主要城市的商品房價格已遠高于社會實際購買能力。
即使最堅定支持“房地產價格應由市場去調節”的人也會同意,房價與所在地居民收入之間,應該存在一個合理的系數,這個系數,聯合國人居中心的上限是3:1,世界銀行的上限是5:1,意思是“一個擁有當地平均收入水平的家庭,用3-5年的收入總和,可以購買到所在地平均價格、平均居住面積的住房”。
按照這個標準,中國幾乎所有主要城市的房價,已連續數年嚴重超過這一標準。其中,“中國著名的經濟中心長三角的各大城市,平均房價收入比超過理性房價收入比的1.93倍,杭州、上海、南京、寧波的比例更超過2倍甚至達到3倍的比例”。國務院發展研究中心一位部門負責人對記者坦陳:按照目前的房價,他是買不起房子了。
2001年,中國房地產被外界形容為“出現局部過熱”時,全國房價只有深圳、杭州、溫州商品房均價超過了5000元/米,廣州、北京接近5000元/米,上海商品住宅均價3413元/米,內環邊5年左右房齡的二手房價格保持在2500元左右,全國35個納入物價指數統計的大中城市中,廈門、杭州、南京、沈陽、大連、天津、哈爾濱、昆明、福州、海口等地商品房價格在2000-3000元/平方米之間;其他21個城市商品房價格在2000元/平方米以下。到2006年底,這些城市的商品房均價幾乎都翻了一倍。深圳、上海、杭州、北京、廣州的房價,已達到“一套房消滅一個百萬富翁”的水平。
2006年底,由中國金融網發起的“中國城市房價究竟高了多少”的網絡調查,截至2007年1月6日,有11%的網友認為高了30%,24% 認為高了30-50%,65%認為高了50%以上。
有學者認為,這一調查數據顯示出的結果與現實情況比較吻合,他說,即使按照世界銀行公布的家庭收入與房價5:1這個上限來看,經過最近幾年的漲價風潮,我國絕大部分一、二線城市的房價已遠遠超標,比如上海,2005年其人均可支配收入為18645元,其家庭人均人口3.1人,年總收入為57799.5元,5年總收入為288997.5萬,這個數據體現的是當地實際發展水平和實際購買力,當年上海人均建筑面積達33.07平方米,按照這個實際購買力和當地人均居住面積之間形成的系數,它的住房均價應該為4171元/米,與它2002年上半年平均房價相當,但實際上,這個數據同期變為了8627元;深圳2005年人均可支配收入21494元,按照當時全國城鎮人均住房系數,它的住房均價應該為4578元/米,但深圳2001年的商品房均價就高出這個數字近千元,同期實際均價為6952元 ;北京2005年人均可支配收入17653元,理性房價上限為3760元,但實際為6232元;廣州2005年人均可支配收入18287元;理性均價上限為3895元,但實際為5660元;南京2005年人均可支配收入14997元,理性均價上限為3194元,但實際為4960元;杭州2005年人均可支配收入16601元,理性均價上限為3536元,但實際為7029元; 青島2005年人均可支配收入12920元,理性均價上限為2751元,但實際為4639元;成都2005年人均可支配收入11359元,理性均價上限為2419元,但五城區實際為4085元;武漢2005年人均可支配收入10850元,理性均價上限為2311元,但實際為3300元;沈陽2005年人均可支配收入10098元,理性均價上限為2151元,但實際為3330元;呼和浩特2005年人均可支配收入12150元,理性均價上限為2588元,但實際為3481元。
他說,這其實意味著,我國大部分城市在進行一場危險的游戲,這場游戲以高昂的房地產為核心,在全面拉高中國固定資產投資的同時,通過抬升城市辦公、居住、生活成本,大幅增加企業的運轉經費,以行業暴利的方式追漲企業成本。導致我們不惜以犧牲環境、一線工人合理工資收益和合理稅收等途徑積攢起來的成本方面的競爭優勢,正在被這一行業暴利全部甚至超額吞噬。從而瓦解我們在全球范圍的競爭優勢。
這一態勢已得到一些國際機構的調查印證,2006年9月26日,總部設在瑞士日內瓦的世界經濟論壇公布的《2006~2007年全球競爭力報告》就顯示出,2006年,中國的競爭力繼續下跌,相比2005年再后延了6個位次,已落后印度11個位次。
在這樣嚴峻形勢下,如果依然以“穩定房價”為指導思想來進行宏觀調控,這場游戲完全可能“以房產暴利開始,以產業崩潰結束”。因為目前的房價已不應該得到“該去穩定”的結論支持,這個觀點不是從一種市場博弈角度給出的,而是依照目前社會實際購買力進行比較衡量的結果。
房地產不但在吞噬城市競爭力,也在吞噬購房者的生活。
2006年初,來自《半島晨報》的調查表明,由于超高的房價,在大連,有4成購房者感到生活質量明顯下降,有3%的購房者感到生活質量嚴重下降,而幾乎就在這同一時間段,一篇名為《高房價導致中國90%白領消失》的網絡文章,在不少論壇成為一個被競相關注的熱點,雖然該文所羅列的數據不一定全部真實,但它提出的“(相當部分)購房白領被房產套牢”的觀點,被隨后《中國青年報》公開的一份統計資料證實,該資料顯示,我國貸款買房的群體中,有54.1%月供占其收入的20%~50%,31.8%月供占到了其收入的50%以上。而在國際上,月收入的1/3是房貸按揭的一條被公認的警戒線。美國銀行就明確規定,每月償還的按揭貸款以及與住房相關的稅費,不得超過貸款人稅前收入的28%。
針對這一問題,知名房產問題專家章林曉曾撰文警告:根據聯合國《國民經濟核算統計年鑒》和各國統計年鑒,以美、英、法、日為對象,分析它們GDP達1000美元時居民消費結構可以發現,其住房消費支出比例最大的英國為13.8%,最小的法國為8.3%,均低于我國同期水平數倍。他據此認為,這意味著,房地產業在不正當剝奪整個社會的財富。而“這破壞了社會的財富配置,既進一步擴大了社會的貧富分化,給社會帶來了不安定,也不利于其他產業的發展,因為社會總體購買力被這個必需品過多地擠占了”。
誰在分攤高房價
在國內一些一線熱點城市,經過一、二、三級市場整合后,當地高昂的房價正在從主要由購房者分攤,逐漸變成由全社會在分攤。
這一分攤的路徑主要有兩種,一是通過提高三級市場的房租,將高昂的房價直接轉給租房者,二是轉化為各類企業、尤其是服務性企業的經營成本,再由這些企業通過提高服務或銷售價格轉嫁給社會。
有專家認為,這種轉嫁因素,或者說商品房的租售比,實際是深圳、北京兩個熱點城市2005年底以來房價持續上漲最重要的支撐點。
在深圳關內,一個3-5年房齡、面積100平米的小區商品房,可以輕松租到3500-4000元/月,按一年出租10個月計,年收益在3.5至4萬元之間,即使按一萬元/米購入,這一投資的年收益也在3.5%-4%之間,如果再加上保值預期,它的投資收益要大大高于同期發放的長期國債。
而據記者所知,中國政府2006年所發放的1950億元長期國債,在全國范圍都受到了瘋狂追捧——
上海,市民為買國債很早就在網點前排起了長隊,中行位于徐家匯和陸家嘴地的支行,營業頭一個小時就售出國債近400萬元,農行在對單筆大額做出限制后,竟然在短短半小時就把國債全部售光;重慶,短短幾個小時,一億多國債就被搶購一空;昆明,商業銀行門口購買國債的市民排起了長隊。幾小時內其所承銷的2.4億國債就全部脫手;南京,市民“手拿油條搶購國債”,商業銀行“只花了10多分鐘,就賣完了所承銷的全部1.5億元國債”,興業銀行也在十多分鐘內,在全國賣完了1.5億的國債配額;合肥,各銀行承銷網點都出現了排隊搶購場面。首發當日上午10時許,大部分銀行承銷的國債就已售空。甚至蕪湖、大慶、蘇州這些二三線城市,國債也都出現了空前的熱銷。
“這些國債,3年期票面年利率3.14%,5年期國債票面年利率3.49%,均低于投資深圳二手房的所得收益”,該專家問記者:“如果你手頭有足夠的錢,又找不到其他投資途徑,給你長期國債和投資深圳的房子賺取租金收益兩個投資途徑,你會怎么選擇”?
北京、上海的情況與深圳類似,在北京,三環附近一間普通的、面積在65米左右的兩房一廳小區房,2005年年中的月租金在2300元左右,2006年漲到了2500元,10個月租金收益在2.3萬-2.5萬。按1萬/米計算,年收益在3.5%至3.8%之間。也高于熱銷全國的長期國債。
上海,內環邊45平米左右的一房一廳,租金價格一般在1500-1700之間,10個月資金收益1.5萬-1.7萬,按目前8000元/平方米的價位,回報在4.17%-4.71%之間。二房的租金收益,也大體與此相當。
于是,從房地產本身這個角度來判斷,上海2003-2005年、北京深圳2005-2006年房價漲幅之快,價格之高,雖令人乍舌,但與國內其他一些房價明顯缺乏投資支撐的城市比,卻居然有了最充足也最合理的理由,畢竟二手房已把這一收益變實,而既然3-5年、5-10年的二手房都有這樣的價格支撐,那么一手房均價過萬是再正常不過。這同時意味著,在深圳、北京、上海這樣的城市,高房價已被成功轉嫁給了租房者,實際也就是轉嫁給了社會來分擔。
在高價位出手的購房者的投資心態,也從實際的購買群體得到了印證,據《深圳特區報》報道,2006年,深圳的購房者有“50%不是自住,全額付款的購房者比例也超過了一半”,投資目的相當明顯。
這一狀況引起了不少學者的憂慮,有的甚至提出了這樣一個激進的觀點:高房價通過三級市場的成功滲透,讓這場地產高燒變成了“先富起來的人對未富起來的人的一種掠奪”。他說,市場運作必須考慮公平原則,只有這樣經濟才健康并可持續,即使是新自由主義經濟學大師哈耶克,晚年也在花很多時間研究“自由市場道德原則的缺失問題”,并承認這是新自由主義經濟學的一塊硬傷,自己一直沒能令人信服地從理論上找到解決依據。現在這個通過“市場自由調整”而出現的“由全社會來分攤高房價”的局面,從技術層面無可指責,但從它必然引起的不良后果這一角度權衡,這一局面必須扭轉,如果不扭轉,把房價拉回到正常水平無疑癡人說夢,因為很簡單,這是一個導致深圳、北京等一線城市高房價平穩著陸的一塊實地,而這個實地的支撐點則是這些城市相較國內其他城市的更高的競爭力,這個高租金則在“毫無創造地消耗這個競爭力”,并支撐這些城市房價繼續上揚。
而另一方面,“全國現在有近8萬億存款掌握在20%的人手上,只要這一模式持續,并被愈來愈多的高收入者接受和認同,就會有愈來愈多的人參與進這一模式,一些學者提出的‘讓有錢人買了房子租給無錢買房的人居住’,在這一模式下就變成了不折不扣的‘先富起來的人對后富起來的人的掠奪’”。
在談到城市房價與可持續發展的關系時,有人打了一個“沙漠中馱金子”的比喻:兩個人穿行沙漠時發現了金子,一個貪心拿了自己拿不動的分量,最后渴死在了沙漠上,一個很理智地拿了一點點,最后終于走出沙漠并致了富。
“房產開發獲利”,可以看作是“金子”,這個“金子”對于處于發展進程中的城市(穿越沙漠的人)而言,是真實的,但對這個“真實的金子”,城市管理者的理智態度應該是“按照自己能輕松承載的能力”(即按城市可支配收入形成的購買力)去拿,這樣才能順路地一路走下去,否則“會被這個真實的寶物最終壓塌”。
四川聯合大學南亞研究所歐東明副教授表示,如果建立了理性的產業發展判斷,即使“房產開發既得利益集團”也應該去支持健康的房價,因為這才是行業可持續的根本,最近幾年一些城市客觀上存在的對宏觀調控的抵觸,一定程度在于這些城市的管理者和房產開發既得利益者對產業的平衡與可持續之間的關系認識不足,假如他們通過量性分析得知再這樣走下去,不出幾年等著他們的就將是整個經濟體系的絕對蕭條甚至崩潰,也許他們會重新考慮自己的整個決策。
他說,在這場地產高燒中,最被誤導的其實還是那些擁有自己住房的普通居民,因為從資產來看,他們是絕對地增值了,這無法不高興。但另一方面,對大多數家庭而言,房子除了滿足居住外別無他用,房產增值除了給了他們一個數字財富外,同時還需要他們去分攤必然高漲的生活支出和服務費用,此外他們還要承擔未來可能的產業崩潰或經濟蕭條。也就是說,這個對他們沒多大實際價值的數字財富,實際大大增加了他們的生活成本和未來風險。
國內經濟已嚴重受損
持續數年的高房價給中國經濟帶來的嚴重隱患,正一一浮出水面。
除直接增加了購房者的支付成本,拉高了中國全社會固定資產投資、使中國經濟始終處于投資過熱狀態外,過多社會財富流向這一生活必需品,以及由此引發的消費預期,使中國本就不均衡的內需進一步不足。最近幾年,中國每年的外貿依存度都以10%左右的速度持續上升,2005年達到80%左右,這引起了不少學者的憂慮——中國經濟在結構上已非常脆弱,而另一方面,世界各市場的貿易保護主義色彩卻越來越濃,這將使中國經濟遭遇不測的可能性大增。
外貿依存度體現的是一個國家進出口貿易總額在本國國內生產總值(GDP)中所占的比重,它反映的是一個國家經濟對外貿的依賴程度和參與國際分工的程度。從1980年到2001年,美國、日本、德國這些發達市場經濟國家,外貿依存度大體穩定在14%~20%的范圍內。
但同一時期,在產業結構失衡、第一次分配嚴重不公、社會保障不足、經濟策略上過度依重國外市場等原因的交替作用下,中國的外貿依存度一路升高,2001年后,由于住房因素進一步拉低了社會消費能力,中國的外貿依存度更陡然提速,每年以10%左右的速度躥升。當年突破50%大關,2003年達到60.2%,2004年超過70%。2005年,中國全年進出口總額超過1.4萬億美元,達到1978年的68倍左右,2006年1~10月份,中國外貿進出口總值達14249.5億美元,同比增長24.1%,已超過2005年全年水平。
有學者表示,從好的方面看,外貿依存度體現了中國經濟的開放程度,表明中國參與全球一體化進程加速,中國經濟與世界經濟已經形成了相互依賴的伙伴關系;從不好的方面看,這其實是國內市場需求不旺的一種必然選擇,也就是說,中國每年的高增長,很大程度上是建立在對外依賴的基礎上的,這一模式在相當長的時期掩蓋了中國經濟存在的問題。
比如,即使在社會圍繞房地產爭論最激烈的時候,我們也沒有達成這樣一個共識:房地產“抽血”式的聚集社會財富,將強力擠壓其他產業的市場空間,其結果是中國經濟整體走上了一條不歸路。這里面的道理很簡單-----假定社會總財富值是100,正常情況下我們拿20%支付住房費用,30%用于儲蓄,50%用于其他消費,但現在住房占用了過多的財富,綜合值達到了40%甚至45%,由于這是一種必須的消費,所以它必然擠壓消費者用于其他領域的消費數額,于是其他行業分到的社會財富值就會大大縮水。購房的人由于財富值已經入套,他得修改自己的消費計劃和比例,沒購房的人呢?如果他需要買房,也不得不按現行的房價標準修改自己的消費計劃。而購房一族,又是一個社會消費力最旺盛的群體,損害了這個群體的購買力無疑意味著內需市場必然遭遇大幅度縮水。
由于房價過于畸形,國內市場的縮水規模可以說達到了駭人聽聞的程度,以上海為例,按照世界銀行認同的房價比上限5:1和上海這一時期由可支配收入形成的購買力計算,上海商品房均價應該在4000元出頭,但它的實際均價卻是8000多元,二者相差4000元以上,按4000元計,2004-2005年,上海大約銷售了4000萬平米的商品房,這是什么意思呢?等于說兩年中,僅上海房產市場就不正當地從購樓者那里多拿走了約1600億元。
“一個上海就擠占了這么龐大的數額,全國加起來是個什么數字?所以我不得不用‘駭人聽聞’這四個字來形容房地產對整個社會的掠奪,而這也必然導致國內其他市場出現嚴重的需求不足,影響經濟的良性與正常”。
來自于央行的最新統計數據,證明該學者所言非虛,2006年11月23日上午,中國人民銀行副行長蘇寧在接受一媒體采訪時透露,我國最終消費占GDP的比重,已從上世紀80年代超過62%下降到2005年的52.1%,居民消費率也從1991年的48.8%下降到2005年的38.2%,二者“均達歷史最低水平”,居民儲蓄率卻上升了9%。
而同一時期,世界平均消費率達78%—79%。是我國的2倍以上的水平。
有“華東六省一市經濟發展火車頭”之謂的上海,可能已率先感受到了由過分偏重房地產帶來的寒意,2005年底,當地社科院在一份年終報告里坦露:2005年1~9月,上海(經濟)出現了比較明顯的收縮,主要經濟指標增速不僅低于2004年同期,而且低于全國同期平均水平,出現了(上海罕見)的“雙低”現象。與此同時,上海的工業增長速度也開始大幅度回落,效益下滑,2005年1~9月份,上海工業增長速度為12.4%,低了全國同期增速3.9個百分點。
此外,顯示上海經濟發達程度和結構合理性的第三產業比重,最近幾年更是持續下降,上海第三產業的比重,2002年達到歷史最高,為51%,伴隨著房價上升。這一比例開始下滑,2003年為 48.4%,2004年為 47.3% ,2005更低至45.6%。
這一情況,近幾年在另一個高房價城市-------深圳也類似存在。
三板斧砍掉地產暴利
基于上漲過快的房貸和開始在全國蔓延的炒房之風,2003年10月,央行正式祭出“121號文”,針對房地產發出了收緊銀根的信號,開始了本輪宏觀調控。
但決策者很快發現,與1993年那次“一控就靈”不同的是,這一次,這個帶有預警性的手段,一出手卻如入泥潭,不但悄無聲息,甚至還引起了強硬反彈:房地產開發資金規模在全社會投資總額中繼續高比例領跑,部分地方政府開始在一些公開場合揚言本地房地產發展健康,不存在泡沫。
宏觀調控得到的結果是:2004-2005年全國范圍房價持續大漲,在這場調控與反擊的較量過程,大連、青島、上海、深圳等熱點城市交替領跑,中國宏觀經濟危機被進一步加劇。
2006年,中央悍然加大調控力度,從金融、信貸、土地、稅收等方面頻出重手,其中包括“加息”、“征稅”、“國六條”、“規定開發周期,打擊土地囤積”、“90平方米70%”、“限外”、“問責”等,一系列政策步步為營,從“宏觀”延伸到了“微觀”,從“市場”延伸到了“政府管理”。態度不可謂不堅決,措施不可謂不嚴厲。
但是,全國范圍房價繼續堅挺,2006年10月的統計資顯示,雖然全國70城市房價漲幅放緩,但總體依然處于漲勢,當月房價同比上漲5.5%,環比上漲0.4%,此前一個月,這些城市房價同比上漲5.3%,環比漲幅則與10月持平,其中漲幅較大的北京,三季度房價比上一個季度漲了上千元。對這一形勢,發改委官員給出的說法是,“未來的調控任務依然相當艱巨”。
為什么1993年一招“收緊銀根”就可以遏制當時瘋狂膨脹的房地產,而本輪調控使用了多得讓人眼花繚亂的手段,卻依然收效不大?
有專家認為,造成這種反差的主要原因在于,兩者有了截然不同的市場機制和金融環境。
1993年,地產市場是一個以開發商為主體的市場,地方政府與開發商是一種博弈的關系,加上當時金融體系內外的流動性資本規模不大;中國經濟剛剛走出調整期,城市住宅市場需求平穩;所以對房產開發“一控就靈”。但本輪調控,房地產市場,乃至金融體系的流動性資本數額與回報預期,都發生了劇烈變化。
首先,地方政府與開發商之間已超越了一種單純的博弈關系,實際形成了利益高度一致的同盟,這一同盟對市場擁有絕對的控制權。導致調控環境變得復雜和微妙,如果調控過程地方政府嚴守一個市場底線,就會大大削弱調控效果。對此,前國家統計局副局長賀鏗甚至直言,不打掉(這種)官商勾結,無法平抑房價。
其次是經過10余年發展,我國的金融環境也已發生巨變,從“資金短缺”變成了“流動性過剩”,據央行相關負責人透露,目前國內有高達2.6萬億的資金處于流動狀態,在資本貫有的追漲心態下,它們對房地產的支撐作用不容忽視,建行董事長、外管局前任局長郭樹清就曾公開表示,(目前)全國各大城市房價連續數月保持5%—7%的快速增幅,原因之一在于金融體系過剩的流動性。
本次宏觀調控的失利還在于,調控的調子不到位,甚至部分調控手段是按照開發商持續數年的宣傳、將當前城市商品住宅暗示為了“稀缺性公共資源”,這在一定程度上對房產市場“恰好起到了效果相反的刺激作用”。
直到2006年三季度,發改委在談到調控目標時,依然將其定位于“穩定房價,抑制上漲”。“這樣的定位不但偏離了目前房產市場的真實狀況,也給了被調控者不恰當的暗示”,緊箍咒不緊,無疑會“影響調控的執行與效果”。
此外,提高首付,限制外購、征收二手房交易所得稅這幾項調控措施,雖可以在一定程度上抑制炒家,提高商品房市場的真需求比例,但這幾個措施也同時釋放出了這樣的意思——商品房是一種稀缺公共資源。結果反而導致更多流動性過剩資本進場,比如在深圳,2006年有過半的交易均非自住,這部分人“全款購買比例很高,投資目的非常明確”。類似的情況也出現在另一個房價突出的城市——上海,2004年,上海商品房銷售額2064.74億元,新增房貸約800億元,房貸額不足40%,已經顯示出購房者高比例付款趨勢,2005年付款比例更大比例攀升,這一年,上海商品房銷售額1906.05億元,但僅新增房貸約200億元。這意味著,同樣有“相當部分購買者在購買時是全額或高額付款,這是實力買家進場給出的一個強信號”。
介于這樣嚴重的局勢,未來的調控將走向何方?有專家建議——
在嚴格執行已頒布的措施,尤其是細化落實“回收閑置土地”以打擊土地囤積,落實“經濟廉租房”制度、以給市場確立趨于正常的價格標準這兩個條款外,還應該針對一些市場苗頭,啟動其他幾項措施,三板斧砍掉房產暴利。
第一板斧,在北京、廣州、深圳、上海等熱點城市,啟動稅收杠桿,打掉這些城市已出現的由“三級市場將高房價坐實”的現實,并遏制這一趨勢向其他城市蔓延。
如果不打掉三級市場這一現狀,這些城市的房價永遠掉不下來,而這幾個在中國具有標向意義的城市房價掉不下來,其他城市也就有了高標準的攀比對象,要降房價困難重重。房地產現在的局面就會出現僵持,可能真只有經濟全盤崩潰那一天才能抑制房價。
由于這一措施是對市場進行細部操作,所以啟動時需制定完善細則,同時須將不同的情況區分開來,比如對同一家庭擁有房屋套數的不同,征收額度不同的稅收:第一套出租房按所得的20%征收,第二套按所得的30%征收,第三套按所得40%征收,第四套按所得50%征收……超過500平米按60%標準征收,超過1000平米按80%征收。
這一稅收征收的依據是“房地產已嚴重干擾中國正常市場秩序,國家不鼓勵私人過多占有這一公共資源”。如果出租房擁有者拒絕出租,那么應對其收取同樣數額的資源閑置費,如果房主稱租不出去,可將該房納入政府專門機構,由政府按“本市實際購買力所確立的租房標準”統一對外出租,對于隱瞞擁有私房數量的情況,則可以通過“有獎舉報,從重處罰”這一殺手锏予以有力還擊,無限度增加這些房主的博弈風險,同時向社會開放這一領域的監督權力,以強力保證這一措施順利推行。
第二板斧砍向“假按揭”,一些城市在房價高漲后,出現了 “將房子賣給自己也能賺錢”的畸形市場格局,導致假按揭再次抬頭。而假按揭不但可以大大增加房產開發公司與市場抗衡的實力,形成巨大金融黑洞,實際也構成了金融詐騙,所以必須從嚴、從重進行處罰。
第三板斧砍向“目前房地產市場由權錢結合所形成的市場聯盟”。
在某種程度上,這個聯盟是近5年房地產持續上漲的罪魁,而且由它所衍生的市場運作機制單一,不利于形成多極化的市場供應。所以,要恢復房產市場的健康,應同時重視其他市場主體的權利。給予其他市場主體以合法地位,比如近期在國內各城市的合作建房聯盟,政府就應給予明確支持引導,打破由2001年《深圳100號令》后,各地政府所實際形成的壟斷型市場模式。
事實證明,個人合作建房能有效撕開此前由地方政府和開發商組成的壟斷聯盟,形成新的、趨于合理的市場供給,比如2006年下半年,溫州個人建房合作聯盟在土地交易市場爭得一塊被當地開發商認為價格過高、賺頭不大的“雞肋”地塊后,獲得了5300多元/平米的成品商品房造價,而其周邊的房價為8000多元/平米。深圳,在商品房均價超過8000元/平米的情況下,由當地個人建房聯盟參與的投標,競得了一幢均價只有1600多元/米的二手房,2007年1月5日,記者在與競投負責人林先生通電話時,他告訴記者,“他們所有參與競投的人都哭了”,同時他還透露,春節后,他們合作建房組織將以某種方式正式參與政府組織的土地拍賣。
政府應該大力支持個人合作建房的理由還在于,發生在溫州和深圳的事實表明,這一形式打掉的只是開發商的暴利,由政府主控的一級市場所損并不大。此外,由于目前個人合作建房與市場比較存在明顯的成本差異,一些不法商人也可能會打著合作建房的幌子套錢,政府的積極參與,有利于這一目前尚處于雛形的市場形態的良性發育。
該學者還特別強調了調控措施中建設“廉價出租房”的重要性。他建議,未來中國城市的住宅供應,應吸取新加坡模式,以“經濟適用房和廉租屋”為手段,加大政府在這一市場領域的作為,使城市房產供應重返1998年由《國務院關于進一步深化城鎮住房制度改革、加快住房建設的通知》所確立的“以經濟適用房為主體、以商品房為補充”的市場格局。
他認為,這不但可以為房產市場提供一個具有良性導向的新標準,而且可以轉移因房地產市場變化而損失的財政收益,以上海為例,如果每年由政府按當地實際購買力提供1000萬平米的廉價房,地方政府在房產領域的財政收益其實根本不會減少。
“更重要的是,這一措施也可以使中國的城市化進程得以實際啟動,困擾中國多年的產業轉型和社會轉型問題,將隨之被打開一個順暢的通道”。