返回列表 回复 发帖

ecserver.pl 源代码

作者:飞鸟
email: flybird@chinaasp.com
日期:2000-8-29 17:16:47

下面的代码有用到unix/linux的系统功能所以不能在NT上使用。
运行这个代码,你需要在相同目录下面放一个文本文件chat.log
聊天内容将保存在这个文件内。代码调用unix/linux处理log的function
写入/读取聊天内容。
至于多进程,好像socket自己就可以处理。。。那个listen()你自己看一下。
Perl我是几乎什么都不懂的。所以只好您老人家自己研究了。:)
搞明白了别忘了教小弟几招。
另外,nt平台上可以用vc写chatserver嘛。(这个我更不懂了)
  1. [color=#008080]#!/usr/bin/perl
  2. [/color]
  3. [color=#008080]# EveryChat Server Edition Beta 1
  4. #
  5. # This is beta code.  You may not
  6. # upload, post, mirror, share, sell
  7. # or otherwise redistribute this
  8. # code in full or in part without
  9. # written permission from the
  10. # author.
  11. #
  12. # By downloading this code, you
  13. # are granted permission to use
  14. # this code on a single server or
  15. # physical machine provided you
  16. # agree with this license agreement.
  17. #
  18. # This code is provided "AS-IS"
  19. # without any warrantees or
  20. # guarantees of any kind.
  21. #
  22. # This code is protected under US
  23. # and international copyright laws.
  24. [/color]
  25. [color=#008080]#
  26. [/color]
  27. [color=#008080]# (c) 1999 EverySoft
  28. [/color]
  29. [color=#008080]# ALL RIGHTS RESERVED
  30. [/color]
  31. $servername [color=#FF00FF]=[/color] [color=#808080]';http://';[/color][color=#008000];[/color]
  32. $ARGV[color=#008000][ [/color][color=#FF0000]0[/color][color=#008000] ][/color] [color=#FF00FF]||[/color][color=#FF00FF]=[/color] [color=#808080]';localhost';[/color][color=#008000];[/color]
  33. $servername [color=#FF00FF].[/color][color=#FF00FF]=[/color] $ARGV[color=#008000][ [/color][color=#FF0000]0[/color][color=#008000] ][/color][color=#008000];[/color]
  34. $ARGV[color=#008000][ [/color][color=#FF0000]1[/color][color=#008000] ][/color] [color=#FF00FF]||[/color][color=#FF00FF]=[/color] [color=#808080]';8080';[/color][color=#008000];[/color]
  35. $servername [color=#FF00FF].[/color][color=#FF00FF]=[/color] [color=#808080]":$ARGV[ 1 ]"[/color][color=#008000];[/color]
  36. $ARGV[color=#008000][ [/color][color=#FF0000]2[/color][color=#008000] ][/color] [color=#FF00FF]||[/color][color=#FF00FF]=[/color] [color=#808080]';./chat.log';[/color][color=#008000];[/color]
  37. $ARGV[color=#008000][ [/color][color=#FF0000]3[/color][color=#008000] ][/color] [color=#FF00FF]||[/color][color=#FF00FF]=[/color] [color=#808080]';EveryChat Server Edition';[/color][color=#008000];[/color]
  38. $[color=#FF00FF]|=[/color][color=#FF0000]1[/color][color=#008000];[/color]
  39. [color=#0000FF]use[/color] Socket[color=#008000];[/color]
  40. [color=#0000FF]use[/color] Carp[color=#008000];[/color]
  41. [color=#0000FF]use[/color] POSIX[color=#008000];[/color]
  42. [color=#0000FF]my[/color] $proto [color=#FF00FF]=[/color] [color=#D2691E]getprotobyname[/color][color=#008000]([/color][color=#808080]';tcp';[/color][color=#008000])[/color][color=#008000];[/color]
  43. [color=#D2691E]socket[/color][color=#008000]([/color]Server[color=#008000],[/color] PF_INET[color=#008000],[/color] SOCK_STREAM[color=#008000],[/color] $proto[color=#008000])[/color] [color=#FF00FF]||[/color] [color=#D2691E]die[/color] [color=#808080]"socket: $!"[/color][color=#008000];[/color]
  44. [color=#D2691E]setsockopt[/color][color=#008000]([/color]Server[color=#008000],[/color] SOL_SOCKET[color=#008000],[/color] SO_REUSEADDR[color=#008000],[/color] [color=#D2691E]pack[/color][color=#008000]([/color][color=#808080]"l"[/color][color=#008000],[/color] [color=#FF0000]1[/color][color=#008000])[/color][color=#008000])[/color] [color=#FF00FF]||[/color] [color=#D2691E]die[/color] [color=#808080]"setsockopt: $!"[/color][color=#008000];[/color]
  45. [color=#D2691E]bind[/color][color=#008000]([/color]Server[color=#008000],[/color] sockaddr_in[color=#008000]([/color]$ARGV[color=#008000][ [/color][color=#FF0000]1[/color][color=#008000] ][/color][color=#008000],[/color] INADDR_ANY[color=#008000])[/color][color=#008000])[/color] [color=#FF00FF]||[/color] [color=#D2691E]die[/color] [color=#808080]"bind: $!"[/color][color=#008000];[/color]
  46. [color=#D2691E]listen[/color][color=#008000]([/color]Server[color=#008000],[/color]SOMAXCONN[color=#008000])[/color] [color=#FF00FF]||[/color] [color=#D2691E]die[/color] [color=#808080]"listen: $!"[/color][color=#008000];[/color]
  47. [color=#0000FF]my[/color] $waitedpid [color=#FF00FF]=[/color] [color=#FF0000]0[/color][color=#008000];[/color]
  48. [color=#0000FF]my[/color] $paddr[color=#008000];[/color]
  49. $SIG[color=#008000]{[/color]CHLD[color=#008000]}[/color] [color=#FF00FF]=[/color] [color=#0000FF]sub[/color] [color=#008000]{[/color][color=#D2691E]wait[/color][color=#008000]([/color][color=#008000])[/color][color=#008000];[/color][color=#008000]}[/color][color=#008000];[/color]
  50. [color=#0000FF]sub[/color] checksocket
  51. [color=#008000]{[/color]
  52. [color=#0000FF]my[/color] $dummy[color=#008000];[/color]
  53. [color=#D2691E]undef[/color] $[color=#FF00FF]![/color][color=#008000];[/color]
  54. &#36;dummy [color=&#35;FF00FF]=[/color] [color=&#35;FF00FF]<[/color]STDIN[color=&#35;FF00FF]>[/color][color=&#35;008000];[/color]
  55. [color=&#35;0000FF]if[/color] [color=&#35;008000]([/color][color=&#35;FF00FF]![/color][color=&#35;008000]([/color][color=&#35;D2691E]defined[/color][color=&#35;008000]([/color]&#36;dummy[color=&#35;008000])[/color][color=&#35;008000])[/color] [color=&#35;FF00FF]&&[/color] [color=&#35;FF00FF]![/color][color=&#35;008000]([/color]&#36;[color=&#35;FF00FF]![/color][color=&#35;008000])[/color][color=&#35;008000])[/color]
  56. [color=&#35;008000]{[/color]
  57. [color=&#35;D2691E]close[/color] TAIL[color=&#35;008000];[/color]
  58. [color=&#35;D2691E]die[/color][color=&#35;008000]([/color][color=&#35;808080]"Socket Closed...\n"[/color][color=&#35;008000])[/color][color=&#35;008000];[/color]
  59. [color=&#35;008000]}[/color]
  60. [color=&#35;008000]}[/color]
  61. [color=&#35;0000FF]sub[/color] spawn
  62. [color=&#35;008000]{[/color]
  63. [color=&#35;0000FF]my[/color] &#36;coderef [color=&#35;FF00FF]=[/color] [color=&#35;D2691E]shift[/color][color=&#35;008000];[/color]
  64. [color=&#35;0000FF]my[/color] &#36;pid[color=&#35;008000];[/color]
  65. [color=&#35;0000FF]if[/color] [color=&#35;008000]([/color][color=&#35;FF00FF]![/color][color=&#35;D2691E]defined[/color][color=&#35;008000]([/color]&#36;pid [color=&#35;FF00FF]=[/color] [color=&#35;D2691E]fork[/color][color=&#35;008000])[/color][color=&#35;008000])[/color]
  66. [color=&#35;008000]{[/color]
  67. [color=&#35;D2691E]print[/color] [color=&#35;808080]"cannot fork: &#36;!"[/color][color=&#35;008000];[/color]
  68. [color=&#35;0000FF]return[/color][color=&#35;008000];[/color]
  69. [color=&#35;008000]}[/color]
  70. [color=&#35;0000FF]elsif[/color] [color=&#35;008000]([/color]&#36;pid[color=&#35;008000])[/color]
  71. [color=&#35;008000]{[/color]
  72. [color=&#35;0000FF]return[/color][color=&#35;008000];[/color] [color=&#35;008080]&#35; I';m the parent
  73. [/color]
  74. [color=&#35;008000]}[/color]
  75. [color=&#35;D2691E]open[/color][color=&#35;008000]([/color]STDIN[color=&#35;008000],[/color] [color=&#35;808080]"<&Client"[/color][color=&#35;008000])[/color] [color=&#35;FF00FF]||[/color] [color=&#35;D2691E]die[/color] [color=&#35;808080]"can';t dup client to stdin"[/color][color=&#35;008000];[/color]
  76. [color=&#35;D2691E]open[/color][color=&#35;008000]([/color]STDOUT[color=&#35;008000],[/color] [color=&#35;808080]">&Client"[/color][color=&#35;008000])[/color] [color=&#35;FF00FF]||[/color] [color=&#35;D2691E]die[/color] [color=&#35;808080]"can';t dup client to stdout"[/color][color=&#35;008000];[/color]
  77. [color=&#35;D2691E]exit[/color] [color=&#35;FF00FF]&[/color]&#36;coderef[color=&#35;008000]([/color][color=&#35;008000])[/color][color=&#35;008000];[/color]
  78. [color=&#35;008000]}[/color]
  79. [color=&#35;0000FF]sub[/color] printlines
  80. [color=&#35;008000]{[/color]
  81. [color=&#35;D2691E]open[/color] TAIL[color=&#35;008000],[/color] [color=&#35;808080]"tail -f &#36;ARGV[ 2 ] |"[/color][color=&#35;008000];[/color]
  82. [color=&#35;0000FF]while[/color] [color=&#35;008000]([/color]&#36;go [color=&#35;FF00FF]==[/color] [color=&#35;FF0000]1[/color][color=&#35;008000])[/color]
  83. [color=&#35;008000]{[/color]
  84. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<TABLE BGCOLOR=&#35;EEEEEE CELLSPACING=2 CELLPADDING=3 BORDER=0 WIDTH=100%><TR><TD>"[/color] [color=&#35;FF00FF].[/color] [color=&#35;FF00FF]<[/color]TAIL[color=&#35;FF00FF]>[/color] [color=&#35;FF00FF].[/color] [color=&#35;808080]"</TD></TR></TABLE><SCRIPT Language=JavaScript1.2><!--\nself.scrollBy(0,640);\n//--></SCRIPT>\n"[/color][color=&#35;008000];[/color]
  85. [color=&#35;FF00FF]&[/color]checksocket[color=&#35;008000];[/color]
  86. [color=&#35;008000]}[/color]
  87. [color=&#35;D2691E]close[/color] TAIL[color=&#35;008000];[/color]
  88. [color=&#35;008000]}[/color]
  89. [color=&#35;0000FF]sub[/color] getform
  90. [color=&#35;008000]{[/color]
  91. &#36;formstring [color=&#35;FF00FF]=[/color] [color=&#35;D2691E]shift[/color][color=&#35;008000];[/color]
  92. [color=&#35;0000FF]foreach[/color] &#36;elem [color=&#35;008000]([/color][color=&#35;D2691E]split[/color][color=&#35;008000]([/color][color=&#35;FF00FF]/[/color][color=&#35;FF00FF]&[/color][color=&#35;FF00FF]|=[/color][color=&#35;FF00FF]/[/color][color=&#35;008000],[/color] &#36;formstring[color=&#35;008000])[/color][color=&#35;008000])[/color]
  93. [color=&#35;008000]{[/color]
  94. &#36;elem [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;008000]tr[/color][color=&#35;FF00FF]/[/color][color=&#35;FF00FF]+[/color][color=&#35;FF00FF]/[/color] [color=&#35;FF00FF]/[/color][color=&#35;008000];[/color]       [color=&#35;008080]&#35; pluses become spaces
  95. [/color]
  96. &#36;elem [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;008000]s[/color][color=&#35;FF00FF]/[/color][color=&#35;FF00FF]%[/color][color=&#35;008000]([/color][color=&#35;008000][ [/color][color=&#35;FF0000]0[/color][color=&#35;FF00FF]-[/color][color=&#35;FF0000]9a[/color][color=&#35;FF00FF]-[/color]fA[color=&#35;FF00FF]-[/color]F[color=&#35;008000] ][/color][color=&#35;008000]{[/color][color=&#35;FF0000]2[/color][color=&#35;008000]}[/color][color=&#35;008000])[/color][color=&#35;FF00FF]/[/color][color=&#35;D2691E]pack[/color][color=&#35;008000]([/color][color=&#35;808080]"c"[/color][color=&#35;008000],[/color][color=&#35;D2691E]hex[/color][color=&#35;008000]([/color]&#36;1[color=&#35;008000])[/color][color=&#35;008000])[/color][color=&#35;FF00FF]/[/color][color=&#35;008000]ge[/color][color=&#35;008000];[/color]
  97. [color=&#35;D2691E]push[/color] [color=&#35;800000]@[/color]data[color=&#35;008000],[/color] &#36;elem[color=&#35;008000];[/color]
  98. [color=&#35;008000]}[/color]
  99. [color=&#35;FF00FF]%[/color]form [color=&#35;FF00FF]=[/color] [color=&#35;800000]@[/color]data[color=&#35;008000];[/color]
  100. [color=&#35;008000]}[/color]
  101. [color=&#35;0000FF]sub[/color] server
  102. [color=&#35;008000]{[/color]
  103. &#36;go [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]1[/color][color=&#35;008000];[/color]
  104. [color=&#35;0000FF]while[/color] [color=&#35;008000]([/color]&#36;go [color=&#35;FF00FF]&&[/color] [color=&#35;D2691E]defined[/color] [color=&#35;008000]([/color]&#36;buf [color=&#35;FF00FF]=[/color] [color=&#35;FF00FF]<[/color]STDIN[color=&#35;FF00FF]>[/color][color=&#35;008000])[/color][color=&#35;008000])[/color]
  105. [color=&#35;008000]{[/color]
  106. [color=&#35;0000FF]if[/color] [color=&#35;008000]([/color]&#36;buf [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;FF00FF]/[/color]GET[color=&#35;FF00FF]/[/color][color=&#35;008000])[/color]
  107. [color=&#35;008000]{[/color]
  108. [color=&#35;D2691E]print[/color] [color=&#35;808080]"HTTP/1.1 200 OK\nServer: EveryChat/1.0.0 (Unix)\nConnection: close\nContent-Type: text/html\n\n"[/color][color=&#35;008000];[/color]
  109. [color=&#35;0000FF]if[/color] [color=&#35;008000]([/color]&#36;buf [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;FF00FF]/[/color]realtime[color=&#35;FF00FF]/[/color][color=&#35;008000])[/color]
  110. [color=&#35;008000]{[/color]
  111. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<BODY BGCOLOR=&#35;FFFFFF>\n"[/color][color=&#35;008000];[/color]
  112. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<TABLE BGCOLOR=&#35;EEEEEE CELLSPACING=2 CELLPADDING=3 BORDER=0 WIDTH=100%><TR><TD><FONT COLOR=&#35;AA0000><B>Welcome to &#36;ARGV[ 3 ]!</B></FONT></TD></TR></TABLE>\n"[/color][color=&#35;008000];[/color]
  113. [color=&#35;D2691E]fcntl[/color][color=&#35;008000]([/color]STDIN[color=&#35;008000],[/color] F_SETFL[color=&#35;008000]([/color][color=&#35;008000])[/color][color=&#35;008000],[/color] O_NONBLOCK[color=&#35;008000]([/color][color=&#35;008000])[/color][color=&#35;008000])[/color] [color=&#35;FF00FF]||[/color] [color=&#35;D2691E]die[/color] [color=&#35;808080]"Can';t make socket nonblocking: &#36;!\n"[/color][color=&#35;008000];[/color]
  114. [color=&#35;FF00FF]&[/color]printlines[color=&#35;008000];[/color]
  115. [color=&#35;008000]}[/color]
  116. [color=&#35;0000FF]elsif[/color] [color=&#35;008000]([/color]&#36;buf [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;FF00FF]/[/color]chatform[color=&#35;FF00FF]/[/color][color=&#35;008000])[/color]
  117. [color=&#35;008000]{[/color]
  118. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<BODY BGCOLOR=&#35;FFFFFF>
  119.     <FORM METHOD=GET ACTION=&#36;servername/post><NOBR>
  120.     <CENTER>Name: <INPUT TYPE=TEXT NAME=name> <INPUT TYPE=HIDDEN NAME=login VALUE=1><INPUT TYPE=SUBMIT VALUE=Enter!></CENTER>
  121.     </NOBR></FORM></BODY>\n"[/color][color=&#35;008000];[/color]
  122. &#36;go [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]0[/color][color=&#35;008000];[/color]
  123. [color=&#35;008000]}[/color]
  124. [color=&#35;0000FF]elsif[/color] [color=&#35;008000]([/color]&#36;buf [color=&#35;FF00FF]=[/color][color=&#35;FF00FF]~[/color] [color=&#35;FF00FF]/[/color]post[color=&#35;FF00FF]\[/color][color=&#35;FF00FF]?[/color][color=&#35;008000]([/color][color=&#35;FF00FF]\[/color]S[color=&#35;FF00FF]+[/color][color=&#35;008000])[/color][color=&#35;FF00FF]/[/color][color=&#35;008000])[/color]
  125. [color=&#35;008000]{[/color]
  126. [color=&#35;FF00FF]&[/color]getform[color=&#35;008000]([/color]&#36;1[color=&#35;008000])[/color][color=&#35;008000];[/color]
  127. [color=&#35;0000FF]if[/color] [color=&#35;008000]([/color]&#36;form[color=&#35;008000]{[/color][color=&#35;808080]';logout';[/color][color=&#35;008000]}[/color][color=&#35;008000])[/color]
  128. [color=&#35;008000]{[/color]
  129. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<BODY BGCOLOR=&#35;FFFFFF>
  130.      <CENTER>Thanks for visiting &#36;ARGV[ 3 ]</CENTER>
  131.      </BODY>\n"[/color]
  132. [color=&#35;008000]}[/color]
  133. [color=&#35;0000FF]else[/color]
  134. [color=&#35;008000]{[/color]
  135. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<BODY BGCOLOR=&#35;FFFFFF onLoad=\"[/color]document[color=&#35;FF00FF].[/color]msgform[color=&#35;FF00FF].[/color]message[color=&#35;FF00FF].[/color]focus[color=&#35;008000]([/color][color=&#35;008000])[/color][color=&#35;008000];[/color][color=&#35;FF00FF]\[/color][color=&#35;808080]">
  136.      <FORM METHOD=GET ACTION=&#36;servername/post NAME=msgform><NOBR>
  137.      <CENTER><INPUT TYPE=HIDDEN NAME=name VALUE=\"[/color]&#36;form[color=&#35;008000]{[/color][color=&#35;808080]';name';[/color][color=&#35;008000]}[/color][color=&#35;FF00FF]\[/color][color=&#35;808080]">Message: <INPUT TYPE=TEXT NAME=message SIZE=40> <INPUT TYPE=SUBMIT VALUE=Post!> <INPUT TYPE=SUBMIT NAME=logout VALUE=Logout></CENTER>
  138.      </NOBR></FORM></BODY>\n"[/color][color=&#35;008000];[/color]
  139. [color=&#35;008000]}[/color]
  140. &#36;time [color=&#35;FF00FF]=[/color] [color=&#35;D2691E]localtime[/color][color=&#35;008000]([/color][color=&#35;D2691E]time[/color][color=&#35;008000])[/color][color=&#35;008000];[/color]
  141. [color=&#35;D2691E]open[/color] MESSAGES[color=&#35;008000],[/color] [color=&#35;808080]">>&#36;ARGV[ 2 ]"[/color][color=&#35;008000];[/color]
  142. [color=&#35;D2691E]print[/color] MESSAGES [color=&#35;808080]"<FONT COLOR=&#35;0000AA><B><&#36;form{';name';}></B></FONT> &#36;form{';message';}\n"[/color] [color=&#35;0000FF]if[/color] &#36;form[color=&#35;008000]{[/color][color=&#35;808080]';message';[/color][color=&#35;008000]}[/color][color=&#35;008000];[/color]
  143. [color=&#35;D2691E]print[/color] MESSAGES [color=&#35;808080]"<FONT COLOR=&#35;00AA00>*** <B>&#36;form{';name';}</B> entered the room on &#36;time</FONT>\n"[/color] [color=&#35;0000FF]if[/color] &#36;form[color=&#35;008000]{[/color][color=&#35;808080]';login';[/color][color=&#35;008000]}[/color][color=&#35;008000];[/color]
  144. [color=&#35;D2691E]print[/color] MESSAGES [color=&#35;808080]"<FONT COLOR=&#35;00AA00>*** <B>&#36;form{';name';}</B> left the room on &#36;time</FONT>\n"[/color] [color=&#35;0000FF]if[/color] &#36;form[color=&#35;008000]{[/color][color=&#35;808080]';logout';[/color][color=&#35;008000]}[/color][color=&#35;008000];[/color]
  145. [color=&#35;D2691E]close[/color] MESSAGES[color=&#35;008000];[/color]
  146. &#36;go [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]0[/color][color=&#35;008000];[/color]
  147. [color=&#35;008000]}[/color]
  148. [color=&#35;0000FF]else[/color]
  149. [color=&#35;008000]{[/color]
  150. [color=&#35;D2691E]print[/color] [color=&#35;808080]"<FRAMESET ROWS=*,50>
  151.     <FRAME SRC=&#36;servername/realtime SCROLLING=AUTO>
  152.     <FRAME SRC=&#36;servername/chatform SCROLLING=NO>
  153.     </FRAMESET>\n"[/color][color=&#35;008000];[/color]
  154. &#36;go [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]0[/color][color=&#35;008000];[/color]
  155. [color=&#35;008000]}[/color]
  156. [color=&#35;008000]}[/color]
  157. [color=&#35;008000]}[/color]
  158. [color=&#35;008000]}[/color]
  159. [color=&#35;0000FF]for[/color] [color=&#35;008000]([/color] &#36;waitedpid [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]0[/color][color=&#35;008000];[/color] [color=&#35;008000]([/color]&#36;paddr [color=&#35;FF00FF]=[/color] [color=&#35;D2691E]accept[/color][color=&#35;008000]([/color]Client[color=&#35;008000],[/color]Server[color=&#35;008000])[/color][color=&#35;008000])[/color] [color=&#35;FF00FF]||[/color] &#36;waitedpid[color=&#35;008000];[/color] &#36;waitedpid [color=&#35;FF00FF]=[/color] [color=&#35;FF0000]0[/color][color=&#35;008000],[/color] [color=&#35;D2691E]close[/color] Client[color=&#35;008000])[/color]
  160. [color=&#35;008000]{[/color]
  161. [color=&#35;0000FF]next[/color] [color=&#35;0000FF]if[/color] &#36;waitedpid [color=&#35;008000]and[/color] [color=&#35;008000]not[/color] &#36;paddr[color=&#35;008000];[/color]
  162. spawn [color=&#35;FF00FF]\[/color][color=&#35;FF00FF]&[/color]server[color=&#35;008000];[/color]
  163. [color=&#35;008000]}[/color]
复制代码

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表