home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / sockdemo / README < prev    next >
Encoding:
Text File  |  1991-12-12  |  2.5 KB  |  59 lines

  1. /* (C) 1991 Blair P. Houghton, All Rights Reserved, copying and */
  2. /* distribution permitted with copyright intact.        */
  3.  
  4. This package is intended for demonstration and education.
  5. I've tried to keep the demos as simple as possible while
  6. implementing the basic functioning of Unix and Internet
  7. sockets.
  8.  
  9. Socket demo programs:
  10.  
  11.     sockl:    Socket Listener.  Creates an AF_UNIX socket (one handled
  12.         only by the local kernel), listens for and accepts a
  13.         SOCK_STREAM (reliable, file-i/o-like) connection, and
  14.         prints the sent data to stdout.  No arguments.  Initially
  15.         prints data including the port number to be given on the
  16.         command line when starting sockt.
  17.     sockt:      Socket Talker.  Connects to an AF_UNIX port given as
  18.         argument and sends a few lines of text.  The connection
  19.         is of SOCK_STREAM type.  (This program is impressively
  20.         simple).
  21.  
  22.     isockl:     Internet Socket Listener.  Like sockl.c, but opens an
  23.         AF_INET socket (an Internet communications channel,
  24.         handled by the ethernet driver).
  25.     isockt:     Internet Socket Talker.  Like sockt, but takes a machine
  26.         name as first argument and port number as second argument.
  27.  
  28.     disockl:    Datagram Internet Socket Listener.  Like isockl, but the
  29.         communications style is SOCK_DGRAM.
  30.     disockt:    Datagram Internet Socket Talker.  Like isockt, but the
  31.         communications style is SOCK_DGRAM.
  32.  
  33. Make targets include the names of the programs, plus "all",
  34. "man", "shar", and "clean."  The sources are compiled by
  35. default with your make(1)'s default cc(1), but can be
  36. compiled with GNU's gcc in pedantic ANSI mode; however, gcc
  37. will use whatever (possibly flakey) library it's been
  38. installed with, so check the results carefully if you do
  39. use gcc.  It's also compiled cleanly under some real ANSI
  40. compilers.
  41.  
  42. Sockets aren't the most portable of code (in fact, ANSI C
  43. makes no provision for them).  These demos were developed
  44. under Ultrix and tested on HP/Apollo BSD.  I fixed some
  45. #include's so it would compile on both systems.
  46.  
  47. The results when the programs are run are okay on Ultrix
  48. but disockl bombs immediately on the Apollo; and, strings
  49. sent over the sockets on the Apollo have grot on the end.
  50. This was the expected result of the experiment; it has to
  51. do with the fact that Ultrix and Apollo use different
  52. structures and semantics for socket data.  If you're using
  53. Apollos or some other system and these programs don't work
  54. out of the box, try hacking them to use the TCP/IP structs
  55. implemented for your machine.
  56.  
  57.                 --Blair
  58.                   "Class dismissed."
  59.