[comp.unix.programmer] socket

wongm@latcs1.lat.oz.au (Mun C Wong) (05/12/91)

	Sorry for posting such a beginner question . I am a beginner in
	learning socket system call on my own and I find myself end up
	man the online manual page without any clue and example of what
	is going on . So I hopefully wish if any experienced helpful
	people can give me some examples and explanation of how to use
	the socket call and a bunch of other relevant calls such as
	connect , select , send etc . Thanks in advance !!

phil@ux1.cso.uiuc.edu (Phil Howard KA9WGN) (05/12/91)

wongm@latcs1.lat.oz.au (Mun C Wong) writes:

>	Sorry for posting such a beginner question . I am a beginner in
>	learning socket system call on my own and I find myself end up
>	man the online manual page without any clue and example of what
>	is going on . So I hopefully wish if any experienced helpful
>	people can give me some examples and explanation of how to use
>	the socket call and a bunch of other relevant calls such as
>	connect , select , send etc . Thanks in advance !!

It is probably best to get the relevant documentation in printed form and
read through it and get the fundamental ideas of what is going on.  For BSD,
the "UNIX Programmer's Manual Supplementary Documents 1", chapters 7 and 8,
should get you bootstrapped.
-- 
 /***************************************************************************\
/ Phil Howard -- KA9WGN -- phil@ux1.cso.uiuc.edu   |  Guns don't aim guns at  \
\ Lietuva laisva -- Brivu Latviju -- Eesti vabaks  |  people; CRIMINALS do!!  /
 \***************************************************************************/

barmar@think.com (Barry Margolin) (05/12/91)

In article <1991May11.191723.10048@latcs2.lat.oz.au> wongm@latcs1.lat.oz.au (Mun C Wong) writes:
>Sorry for posting such a beginner question . I am a beginner in
>learning socket system call on my own and I find myself end up
>man the online manual page without any clue and example of what
>is going on .

Get the book "Unix Network Programming" by Stevens.  It describes how to
write network software on Unix (both BSD and System V), and contains many
reasonable examples.
-- 
Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar

sharman@Software.Mitel.COM (Richard Sharman) (05/16/91)

In article <1991May11.191723.10048@latcs2.lat.oz.au> wongm@latcs1.lat.oz.au (Mun C Wong) writes:

  I am a beginner in learning socket system call on my own and I find
  myself end up man the online manual page without any clue and example
  of what is going on . So I hopefully wish if any experienced helpful
  people can give me some examples and explanation of how to use the
  socket call and a bunch of other relevant calls such as connect ,
  select , send etc . Thanks in advance !!

I have recently been looking into sockets,  and at first found them
confusing and not well documented.   With some help from a local
expert I came up with two server-client scenarios (one using Unix-
domain sockets, the other using Internet-domain ones).  This posting
will include all 4 programs, as well as a short description I wrote up
on sockets to hopefully explain them.   I hope this helps.

Richard Sharman,
Mitel Corporation
(613) 592-5660	
sharman@Software.Mitel.COM

-------------------- decoded, compress, tar'd file follows
begin 644 sockets.tar.Z
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
;8>U8ZSNE-N[#60LZ;H\?9:S!@MD+J^_B"F<!
 
end

mjr@hussar.dco.dec.com (Marcus J. Ranum) (05/16/91)

>  I am a beginner in learning socket system call on my own and I find
>  myself end up man the online manual page without any clue and example
>  of what is going on .

	I should maybe have cron post this for me about once a month. ;)

	The Berkeley IPC Primer is an excellent intro with examples and
a very straightforward explanation of how to do basic IPC. It's available
for anonymous FTP from finer archive servers near you, and requires only
some basic knowledge of *roff to format.

mjr.

adrianho@barkley.berkeley.edu (Adrian J Ho) (05/16/91)

In article <1991May16.033354.20029@decuac.dec.com> mjr@hussar.dco.dec.com (Marcus J. Ranum) writes:
%% >  I am a beginner in learning socket system call on my own and I find
%% >  myself end up man the online manual page without any clue and example
%% >  of what is going on .

%% I should maybe have cron post this for me about once a month. ;)

Make that once a week, from the frequency of requests.  8-)

%% The Berkeley IPC Primer is an excellent intro with examples and
%% a very straightforward explanation of how to do basic IPC. It's available
%% for anonymous FTP from finer archive servers near you, and requires only
			  ^^^^^^^^^^^^^^^^^^^^^
%% some basic knowledge of *roff to format.

You're a real tease, you know that?  8-)

Some "finer archive sites" (according to Archie the Wise):

Host kth.se   (130.237.72.201)
Last updated 05:04  9 May 1991

    Location: /doc/4.3/ps1
      DIRECTORY rwxrwxr-x       512  Sep 22  1987   07.ipctut
      DIRECTORY rwxrwxr-x       512  Sep 22  1987   08.ipc

Host dutepp0.et.tudelft.nl   (130.161.144.65)
Last updated 05:05  2 May 1991

    Location: /Unix/Network/bsd-sources/src/network/doc
      DIRECTORY rwxr-xr-x       512  Mar 25 10:04   07.ipctut
      DIRECTORY rwxr-xr-x       512  Mar 25 10:04   08.ipc

Host uunet.uu.net   (192.48.96.2)
Last updated 23:28  1 May 1991

    Location: /bsd-sources/share/doc/ps1
      DIRECTORY rwxrwxr-x       512  Nov 29 17:33   07.ipctut
      DIRECTORY rwxrwxr-x       512  Nov 21 12:40   08.ipc

Host wuarchive.wustl.edu   (128.252.135.4)
Last updated 23:25 30 Apr 1991

    Location: /unix/4.3bsd-reno/share/doc/ps1
      DIRECTORY rwxrwxr-x       512  Apr  3 14:15   07.ipctut
      DIRECTORY rwxrwxr-x       512  Apr  3 14:15   08.ipc

Host cheops.cis.ohio-state.edu   (128.146.8.62)
Last updated 05:12 28 Apr 1991

    Location: /doc/ps1
      DIRECTORY rwxrwxr-x      2048  Nov  9 07:51   07.ipctut
      DIRECTORY rwxrwxr-x      2048  Nov  9 07:51   08.ipc

Host apple.com   (130.43.2.2)
Last updated 05:06 25 Apr 1991

    Location: /pub/ArchiveVol2/4.3bsd-reno/share/doc/ps1
      DIRECTORY rwxr-xr-x       512  Jan  4 18:09   07.ipctut
      DIRECTORY rwxr-xr-x       512  Jan  4 18:09   08.ipc

Host watserv1.waterloo.edu   (129.97.129.140)
Last updated 05:03 22 Apr 1991

    Location: /tahoe/doc/ps1
      DIRECTORY rwxr-xr-x       512  Aug 27  1988   07.ipctut
      DIRECTORY rwxr-xr-x       512  Aug 27  1988   08.ipc

Host ocf.berkeley.edu   (128.32.184.254)
Last updated 05:25  9 Apr 1991

    Location: /pub/Library/Computer/doc.4.3/ps1
      DIRECTORY rwxr-xr-x      1024  Feb  9 01:59   07.ipctut
      DIRECTORY rwxr-xr-x      1024  Feb  9 01:59   08.ipc

As a side note, I can testify that ocf.berkeley.edu is a pretty flaky
machine, so don't expect to be able to connect too often.

-----------------------------------------------------------------------------
Adrian Ho, EECS (pronounced "eeks!") Dept.		Phone: (415) 642-5563
UC Berkeley					adrianho@barkley.berkeley.edu