Explorar el Código

* Examples for socket client/server moved here, adapted for possibility of timeout

git-svn-id: trunk@39539 -
michael hace 7 años
padre
commit
4e94570ca3

+ 2 - 0
.gitattributes

@@ -2495,6 +2495,8 @@ packages/fcl-net/examples/Makefile svneol=native#text/plain
 packages/fcl-net/examples/Makefile.fpc svneol=native#text/plain
 packages/fcl-net/examples/cnslookup.pp svneol=native#text/plain
 packages/fcl-net/examples/ip6test.pp svneol=native#text/plain
+packages/fcl-net/examples/isockcli.pp svneol=native#text/plain
+packages/fcl-net/examples/isocksvr.pp svneol=native#text/plain
 packages/fcl-net/examples/readme.txt svneol=native#text/plain
 packages/fcl-net/examples/rpccli.pp svneol=native#text/plain
 packages/fcl-net/examples/rpcserv.pp svneol=native#text/plain

+ 107 - 87
packages/fcl-net/examples/Makefile

@@ -1,11 +1,11 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2017-09-21 rev 37286]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2018-03-05 rev 38412]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-aros x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin wasm-wasm sparc64-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin wasm-wasm sparc64-linux
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
-LIMIT83fs = go32v2 os2 emx watcom msdos win16
+LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
@@ -332,256 +332,259 @@ FPCFPMAKE=$(FPC)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-android)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-aros)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-macos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
+endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-android)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),arm-aros)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i8086-embedded)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),wasm-wasm)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),sparc64-linux)
-override TARGET_PROGRAMS+=rpcserv rpccli
+override TARGET_PROGRAMS+=rpcserv rpccli isockcli isocksvr
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=svrclass svrclass_xmlrpc
@@ -748,6 +751,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_UNITS+=svrclass svrclass_xmlrpc
 endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_UNITS+=svrclass svrclass_xmlrpc
 endif
@@ -1001,6 +1007,9 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -2358,6 +2367,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-NET=1
 endif
+ifeq ($(FULL_TARGET),arm-netbsd)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 1 - 1
packages/fcl-net/examples/Makefile.fpc

@@ -6,7 +6,7 @@
 packages=fcl-base fcl-xml fcl-net
 
 [target]
-programs=rpcserv rpccli
+programs=rpcserv rpccli isockcli isocksvr
 units=svrclass svrclass_xmlrpc
 
 [compiler]

+ 45 - 0
packages/fcl-net/examples/isockcli.pp

@@ -0,0 +1,45 @@
+Program Client;
+{
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+  TInetSocket client program. Before running this, run either
+  'isocksvr' or 'dsocksvr -i' in another terminal or in the
+  background.
+  
+  You can specify a connection timeout in milliseconds on the command-line:
+  isockcli 1000
+  will wait 1 second.
+}
+{$mode objfpc}{$H+}
+uses sysutils, ssockets;
+
+Const
+  TheHost = 'localhost';
+  ThePort = 4100;
+
+var
+  S : String;
+  i : longint;
+
+begin
+  S:='This is a textstring sent by the client'#10;
+  With TInetSocket.Create(TheHost,ThePort,StrToIntDef(ParamStr(1),0)) do
+    begin
+    For I:=1 to 10 do
+      Write(S[1],Length(S));
+    S:='QUIT'#10;
+    Write(S[1],Length(S));
+    Free;
+    end;
+end.

+ 81 - 0
packages/fcl-net/examples/isocksvr.pp

@@ -0,0 +1,81 @@
+Program server;
+{
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+{
+  TInetServer server program. This will listen on port 4100 till
+  a client connects. You can connect by running the 'isockcli' or
+  'dsockcli -i' programs in another terminal.
+}
+
+{$mode objfpc}{$H+}
+uses ssockets;
+
+
+const
+  ThePort=4100;
+
+Type
+  TINetServerApp = Class(TObject)
+  Private
+    FServer : TInetServer;
+  Public
+    Constructor Create(Port : longint);
+    Destructor Destroy;override;
+    Procedure OnConnect (Sender : TObject; Data : TSocketStream);
+    Procedure Run;
+  end;
+
+Constructor TInetServerApp.Create(Port : longint);
+
+begin
+  FServer:=TINetServer.Create(Port);
+  FServer.OnConnect:=@OnConnect;
+end;
+
+Destructor TInetServerApp.Destroy;
+
+begin
+  FServer.Free;
+end;
+
+Procedure TInetServerApp.OnConnect (Sender : TObject; Data : TSocketStream);
+
+
+Var Buf : ShortString;
+    Count : longint;
+
+begin
+  Repeat
+    Count:=Data.Read(Buf[1],255);
+    SetLength(Buf,Count);
+    Write('Server got : ',Buf);
+  Until (Count=0) or (Pos('QUIT',Buf)<>0);
+  Data.Free;
+  FServer.StopAccepting;
+end;
+
+Procedure TInetServerApp.Run;
+
+begin
+  FServer.StartAccepting;
+end;
+
+Var
+  Application : TInetServerApp;
+
+begin
+  Application:=TInetServerApp.Create(ThePort);
+  Application.Run;
+  Application.Free;
+end.