README.TXT
上传用户:xdgkgcw
上传日期:2007-01-04
资源大小:92k
文件大小:18k
源码类别:

Delphi控件源码

开发平台:

WINDOWS

  1. ICS - Internet Component Suite
  2. ==============================
  3. (Aka FPIETTE's Components)
  4. Revised: July 25, 1999
  5. http://www.rtfm.be/fpiette/indexuk.htm
  6. Legal issues: 
  7. -------------
  8.               Copyright (C) 1997, 1998, 1999 by Fran鏾is PIETTE 
  9.               Rue de Grady 24, 4053 Embourg, Belgium
  10.               <francois.piette@pophost.eunet.be> <francois.piette@rtfm.be>
  11.               This software is provided 'as-is', without any express or
  12.               implied warranty. In no event will the author be held liable
  13.               for any damages arising from the use of this software.
  14.               Permission is granted to anyone to use this software for any
  15.               purpose, including commercial applications, and to alter it
  16.               and redistribute it freely, subject to the following
  17.               restrictions:
  18.               1. The origin of this software must not be misrepresented,
  19.                  you must not claim that you wrote the original software.
  20.                  If you use this software in a product, an acknowledgment
  21.                  in the product documentation would be appreciated but is
  22.                  not required.
  23.               2. Altered source versions must be plainly marked as such, and
  24.                  must not be misrepresented as being the original software.
  25.               3. This notice may not be removed or altered from any source
  26.                  distribution.
  27.               4. You must register this software by sending a picture postcard
  28.                  to the author. Use a nice stamp and mention your name, street
  29.                  address, EMail address and any comment you like to say.
  30. Register
  31. --------
  32. ICS is freeware. If you use the components, you must register by sending a 
  33. picture postcard showing the area you lives in and some beautiful stamps for 
  34. my kids who are stamp collectors. Do not use an envelop, I collect USED
  35. postcards sent to me.
  36. Address your card to: Francois PIETTE, rue de Grady 24, 4053 Embourg, Belgium.
  37. Don't forget to mention your EMail, I'll tell you when I'll receive your 
  38. postcard.
  39. Installation:
  40. -------------
  41. The zip file has subdirectories in it. You must use the pkunzip -d option
  42. to restore this directory tree or you will have problems because the files 
  43. will not be in their proper subdirectories.
  44. This is the subdirectory layout:
  45. .                           Info directory
  46. .delphiinternet            Delphi sample applications
  47. .cppinternet               C++Builder sample applications
  48. .cppinternetbcb1          C++Builder version 1 projects
  49. .cppinternetbcb3          C++Builder version 3 projects
  50. .delphivc                  Delphi 1.x files (winsock.pas 16 bits and *.dcr)
  51. .delphivc32                Delphi (1/2/3/4) and C++Builder (1/3) components
  52. DELPHI4: Directory VC32 contains IcsDel40.dpk which is a package source for
  53. all components. Using Delphi, do a file/open, select *.dpk and browse to
  54. the VC32 directory. Select IcsDel40.dpk and open it. Then click on the 
  55. Install button. You should see the FPiette tab on the component gallery.
  56. Once the package is installed, you may open the sample projects. There is a
  57. project group called Del40Sam.bpg which has all sample programs. Open it
  58. with file/open, browse to the Internet directory, selct and open Del40Sam.bpg.
  59. Then Project/Build all projects. You'll get all sample programs compiled.
  60. Note: Packages are in the full ICS, in ICS.ZIP file. If you downloaded a
  61. partial ICS, then you have to add each component by hand in the package
  62. of your choice.
  63. DELPHI3: Directory VC32 contains IcsDel30.dpk which is a package source for
  64. all components. Using Delphi, do a file/open, select *.dpk and browse to
  65. the VC32 directory. Select IcsDel30.dpk and open it. Then click on the 
  66. Install button. You should see the FPiette tab on the component gallery.
  67. Once the components are all installed, you may open the sample projects
  68. each one after the other and compile them. For each project, do file/open
  69. and select the dpr file in the internet directory. Then Project/Build All.
  70. Note: Packages are in the full ICS, in ICS.ZIP file. If you downloaded a
  71. partial ICS, then you have to add each component by hand in the package
  72. of your choice.
  73. DELPHI2: Directory VC32 contains all components. You must add all those
  74. components into you library. But warning: not all files are components.
  75. Only those with a Register procedure are components. Other are just support
  76. files but must not be installed as components. To install a component file,
  77. do Component/Install, then click on the Add button, then click on the Browse
  78. button and browse to the VC32 directory. Select a component file such as
  79. wsocket.pas and click on OK. Do it again for all component files and
  80. finally click OK button on the Install Component dialog window. Your 
  81. library will be rebuilt. You should see the tab FPiette added to your
  82. component gallery.
  83. Once the components are all installed, you may open the sample projects
  84. each one after the other and compile them. For each project, do file/open
  85. and select the dpr file in the internet directory. Then Project/Build All.
  86. DELPHI1: The install procedure is the same as for Delphi2. But you must
  87. add the directory VC into the library path before VC32 directory which
  88. will be added automatically when you add the first component source.
  89. VC directory in the library path is needed because Delphi 1 doesn't have 
  90. built in winsock support. ICS contains winsock.pas in VC directory to 
  91. add winsock support. VC directory also contains 16 bits component resource 
  92. files (*.dcr) needed by Delphi 1. VC32 contains the 32 bits resource files.
  93. If you use only Delphi 1, you can safely copy all files from VC to VC32
  94. directory, but not the contrary.
  95. Once the components are all installed, you may open the sample projects
  96. each one after the other and compile them. For each project, do file/open
  97. and select the dpr file in the internet directory. Then Project/Build All.
  98. BCB3: First you need to install all components. There is a package in
  99. DelphiVC32 directory, called IcsBcb30.bpk. You do File/Open project and
  100. browse to IcsBcb30.bpk. Select and open it, then Project/Build IcsBcb30.
  101. Once the package is compiled, you can install it into your component
  102. palette: Component/Install Packages, click the Add button and select 
  103. DelphiVC32IcsBcb30.bpl (you just generated this file by compiling the 
  104. package). Click OK button. You must now see FPiette Tab on the component 
  105. gallery.
  106. Once the components are all installed, you may open the sample projects
  107. each one after the other and compile them. For each project, do file/open
  108. and select the dpr file in the internet directory. Then Project/Build All.
  109. Projects are located in CPP/INTERNET/BCB3.
  110. Note: Packages are in the full ICS, in ICS.ZIP file. If you downloaded a
  111. partial ICS, then you have to add each component by hand in the package
  112. of your choice.
  113. BCB1: First you need to install all components that are located in
  114. Delphi/VC32. Components are all Object Pascal sources. You must select
  115. *.pas when in the open dialog box (Menu/Component/Install/Add/Browse).
  116. Components are files with a register procedure. Do not install files
  117. with no register procedure (if you try, you'll get an error message).
  118. Once the components are all installed, you may open the sample projects
  119. each one after the other and compile them. For each project, do file/open
  120. and select the dpr file in the internet directory. Then Project/Build All.
  121. Projects are located in CPP/INTERNET/BCB1.
  122. NOTES: 
  123. - If you use Delphi 1, 2, 3 or BCB 1 or 3, you may have an error 
  124. message complaining about Font.Charset and OldCreateOrder properties.
  125. Those are two new properties in newer Delphi versions. You can safely 
  126. ignore those errors because those properties are not used by the 
  127. components nor sample programs. You may encounter this error at run 
  128. time. To avoid it, you must open each form at design time and ignore 
  129. the error. Then recompile. If you don't ignore the error at design 
  130. time, you'll have it at runtime !
  131. - If you are using BCB3, you may encounter an error at link time such as
  132. "Unable to open file MWBCB30.LIB" (or other LIB). This is a bug in BCB.
  133. To solve it, close BCB and open the package or project file with notepad
  134. or any text editor and remove any reference to the missing library. Then
  135. start BCB again, reopen the project and rebuilt it.
  136. - Don't forget that the C++Builder components are located in .delphivc32 
  137. which is object pascal source code (not a problem for C++Builder, just 
  138. indicate that the *.pas files are displayed when installing). C++Builder 
  139. will create the *.hpp files. There are some on-line help files in the VC32
  140. directory. Do not install the WSockBuf.pas, icmp.pas, md5.pas, tnoptfrm.pas,
  141. formpos.pas files since it is not components (BCB1, D1, D2).
  142. - The following is a list of the files that should be installed in order to
  143. properly add all of the available components in this collection.  Note that 
  144. you may not have all of these present:
  145. > WSocket.pas      (Winsock component - TCP, UDP, DNS,...)
  146. > HttpProt.pas     (HTTP client protocol - used by the web)
  147. > FtpCli.pas       (FTP client protocol - file transfert)
  148. > FtpSrv.pas       (FTP server protocol - file transfert)
  149. > Ping.pas         (ICMP echo protocol - ping a host)
  150. > Pop3Prot.pas     (POP3 client protocol - get mail from mail server)
  151. > MimeDec.pas      (MIME component - decode file attach, use with POP3)
  152. > SmtpProt.pas     (SMTP client protocol - send mail to server)
  153. > NntpCli.pas      (NNTP client protocol - send and receive newsgroups messages)
  154. > TnCnx.pas        (TELNET client protocol - terminal emulation protocol)
  155. > TnScript.pas     (TELNET client protocol - with automation)
  156. > EmulVT.pas       (ANSI terminal emulation in a control)
  157. > TnEmulVT.pas     (TELNET and ANSI terminal emulation combined)
  158. > FingCli.pas      (FINGER client protocol - Find informations about user)
  159. > Wait.pas         (A kind of progress bar - now obsolete)
  160. > DnsQuery         (DNS lookup component - useful for getting MX records)
  161. As a rule, the component are the files which have a Register procedure.
  162. Sample applications:
  163. --------------------
  164. TWSCHAT         Chat program (both client and server in a single program)
  165. SRV5/CLI5       Basic client/server GUI applications
  166. CONCLI          Basic client/server console applications
  167. CONSRV          Basic server application in console mode
  168. TNSRV           Basic server, event driven
  169. MTSRV           Basic server, multi-threaded
  170. FTPCLI          Graphical FTP client
  171. FTPSERV         General purpose FTP server
  172. TNCLIENT        Telnet client using a TnEmulVT
  173. TNDEMO          Telnet client using a TMemo
  174. UDPDEMO         UDP send/receive
  175. MIMEDEMO        Example of EMail decoding (file attach)
  176. MAILSND         Example of EMail sending, including file attach
  177. MAILRCV         Internet EMail access using POP3 protocol
  178. HTTPTST         Example of THttpCli component (GET)
  179. HTTPGET         Example of THttpCli component (GET into a file)
  180. HTTPPG          Example of THttpCli component (POST)
  181. HTTPASP         Example of THttpCli component with cookie (POST)
  182. HTTPASY         Example of THttpCli component with multiple requests (GET)
  183. HTTPTHRD        Example of THttpCli component (multi-threaded GET)
  184. FINGER          Example of TFingerCli component
  185. NEWSRDR         Example of TNntpCli component (Send/receive newsgroups)
  186. SRVDEMO         Example of server using a TTable
  187. CLIDEMO         Example of client for SRVDEMO
  188. As explined in the component installion, you may encounter an error loading
  189. a sample application or running it. This may be because the last time I
  190. loaded the form, I was using another Delphi version which has new properties. 
  191. You can safely ignore those properties. They are not used in the samples.
  192. (The properties are CharSet and OldCreateOrder). You can also encounter
  193. error about duplicate resources. You can ignore them safely. If you have
  194. those errors, open each form in the IDE, ignore the error then recompile. 
  195. If you don't open the form in the IDE, you'll get the errors at runtime 
  196. and your program will abort.
  197. If you use C++Builder 1, you may encounter problems because Borland has
  198. two winsock include files: one .h and one .hpp. TWSocket needs the 
  199. winsock.hpp file and it is automatically included. However, sometimes
  200. the winsock.h file is included indirectly and you will get numerous error 
  201. messages from the compiler. Just add a #define _WINSOCKAPI_ before 
  202. your existing #include directives. This will prevent winsock.h from being
  203. included. This is no a bug, it is a feature :-) Another annoying feature
  204. is the SetPortA syndrome. Add a #define _WINSPOOL_ before any #include
  205. directive to work around. If you have some file not found error at
  206. compile time, be sure to verify the project options to change any directory
  207. following your own configuration (include files and library path).
  208. Do NOT use those #include if you use C++Builder 3: Borland has corrected
  209. their mistake.
  210. When installing a new version, always recompile everything ! 
  211. Close everything before recompiling the library or packages.
  212. When installing a new version, be sure to unzip it in the same directory
  213. tree as the old one.
  214. The provided delphivcwinsock.pas is for use with Delphi 1 only.
  215. Use Borland's file with Delphi 2, 3, 4 and C++Builder.
  216. C++Builder 1 and 3 projects are not compatible. V3 can load and convert V1
  217. project. For those who need the two versions, I made separate projects in
  218. CPPINTERNETBCB1 and CPPINTERNETBCB3 directories. If you install this
  219. ICS version above an older one, be sure to delete every *.mak and 
  220. corresponding *.cpp files form the internet directory (not all *.cpp
  221. files, only those which has a corresponding *.mak file !).
  222. Support:
  223. --------
  224. There is a mailing list to discuss F. Piette's components and applications.
  225. To subscribe send an EMail at majordomo@rtfm.be without subject line and 
  226. with "subscribe twsocket" in the message body (without the quotes). You'll 
  227. receive an autorization message you have to reply. Then you'll receive an 
  228. acknowledgement and instructions to unsubscribe. 
  229. Once you have been registered with the mailing list processor, you can 
  230. send messages to twsocket@rtfm.be. Every subscriber will receive a copy of 
  231. your message. I will respond, but anybody is welcome to respond to each 
  232. other's messages. So every body can share his expertize.
  233. Before asking a question, browse the message digest you can download from
  234. the support page on the website (click the "support" button from main page).
  235. If you found a bug, please make a short program which reproduce the problem 
  236. attach it to a message addressed to me. If I can reproduce the problem, I 
  237. can find a fix !
  238. You are also encouraged to use the support mailing list to ask for 
  239. enhancements. You are welcome to post your own code.
  240. The support mailing list has an heavy traffic: 20 to 40 messages each day. If
  241. it is too much for you, you can subscribe to another mailing list called
  242. twsocket-announce which will receive only very few messages when major bug
  243. fixes or updates are done. The subscription process is the same as for the 
  244. other mailing list. See above procedure.
  245. MidWare
  246. -------
  247. If you wants to build client/server applications using TCP/IP protocol, you 
  248. can do it easily with ICS. But you can do it much more easily using another
  249. freeware product from Fran鏾is Piette: MidWare. Available from the same web
  250. site.
  251. Known problems:
  252. --------------
  253. Delphi and C++Builder have limitation on path length. If you installed many
  254. components in many differents subdirectories, you'll get strange errors. Just
  255. make the path shorter and use less different directories. You cannot have
  256. a path greater than 255 characters (this problem is solved starting from Delphi
  257. 3.02 or later).
  258. Using Delphi 3 Pro, there could a problem after inserting all the component
  259. into your user package. Delphi 3 gives an access violation error in DCC.DLL.
  260. This does not occur if you use Delphi C/S (That's what I do). Ben Ark
  261. (BenArk@email.msn.com) has found the following procedure to overcome 
  262. this [Delphi] bug:
  263. ---- copy of a message posted in twsocket@rtfm.be mailing list ----
  264. Just thought I'd correct that previous message with some more detailed
  265. steps...
  266. 1) Remove the EmulVT and TnEmulVT units from your User Package.
  267. 2) Create a new project/application.
  268. 3) Put all of these new files in a directory seperate from your components.
  269. 4) MOVE, do not copy, your Emulvt.pas source file into this new directory.
  270. 5) You need to add Emulvt.pas to the new project.
  271. 6) Build the project.
  272. 7) This should generate an Emultvt.dcu in the directory where the project
  273.         is.
  274. 8) Copy ONLY the DCU file into your component directory
  275. 9) Add EmulVT.dcu to your User Package.
  276. 10) Make sure the EmulVT.pas file IS NOT on your search path.
  277. 11) Now you can safely readd TnEmulVT.pas to your User Package and build
  278.         it.
  279. If you have any problems with these steps, let me know.
  280. -Ben
  281. ---- End of message ----
  282. Thank you Ben !
  283. Eric Daniels <sparky@netgsi.com> also found the same problem with Delphi 3
  284. standard. Here what's he tell me in a message:
  285. ---- copy of a message posted in twsocket@rtfm.be mailing list ----
  286. This error does happen under Delphi 3 Standard which I use...  I traced it
  287. down and found out to trigger this error all one needs to do is goto:
  288. package options / compiler  / debugging section  and look for local symbols
  289. if this is not checked I will get this error.  After playing around with my
  290. compiler options I unchecked local symbols and rebuilt the package and
  291. Access Violation in dcc.dll read of address occurred...  If anyone has this
  292. happen while using the ics components that is how I managed to fix it.  Also
  293. I got error about unable to find *.dcr files if you edit your package source
  294. and specify the full path to each dcr file you will find all goes well.
  295. ---- End of message ----
  296. Special thanks
  297. --------------
  298. to Bob Dolan (bobd@overware.com) who corrected my bad english.
  299. (Ok, I introduced new errors since I updated this file... For those
  300. who cares, I normally speak french.)
  301. francois.piette@rtfm.be
  302. http://www.rtfm.be/fpiette/indexuk.htm