02-10-2001
A socket is a data-structure used for interprocess communications, generally associated with network communications. You create them via access to kernel system calls that create sockets. These system calls may be C programming interfaces to the kernel, or they may be created via higher level languages such as PERL, PHP, PYTHON, etc.
When you create a socket, you only create the data structure. You must bind the process to the data structure in order to listen, read, and write between the socket and the process which is bound to the socket.
Sockets are generally used between processes over the network. I suggest you study Steven's book, "UNIX Network Programming," to gain an appreciation of sockets and network programming. Here is an Amazon.com link to a later (maybe better) edition of UNIX Network Programming by Rich Stevens (a true UNIX hero!)
<CENTER>
<A HREF="http://www.amazon.com/exec/obidos/ASIN/013490012X/silkroadcom"><IMG SRC="http://images.amazon.com/images/P/013490012X.01.MZZZZZZZ.jpg" border="0" alt="cover" hspace="3" vspace="3"></A>
<A HREF="http://www.amazon.com/exec/obidos/ASIN/0130810819/silkroadcom"><IMG SRC="http://images.amazon.com/images/P/0130810819.01.MZZZZZZZ.jpg" border="0" alt="cover" hspace="3" vspace="3"></A>
</CENTER>
Also, here are more discussions and pointers in a related thread:
http://forums.unix.com/showthread.php?threadid=75
10 More Discussions You Might Find Interesting
1. Programming
I must write some codes about client/server architecture.
The server program send the data to the client program,And the data is huge count and I want to implement that If some error happen and traslation of the data is interrupted,The program can send the data to the client program from the pos... (1 Reply)
Discussion started by: niuzefeng
1 Replies
2. UNIX for Dummies Questions & Answers
hi everybody !
i want create server/clients in c++
anyone can give me i little exemple for send a string ?
or give me a good site for explain.
thx (1 Reply)
Discussion started by: mercutio
1 Replies
3. Programming
Hello,
I actually try to make client-server program.
I'm using SCO OpenServer Release 5.0.0 and when I try to compile my code (by TELNET) I've got this error :
I'm just using this simple code :
and I get the same error if I use :
If someone can help me,
Thanks (2 Replies)
Discussion started by: soshell
2 Replies
4. UNIX for Dummies Questions & Answers
I have been serching for a guide to unix C network programming everywhere but I have found only some tuorials, very useful but a little bit poors.
My question is if exist a network domain all over the world where C socket is treated with examples.
Programs i have looked into is hard to... (4 Replies)
Discussion started by: Davide71
4 Replies
5. IP Networking
Please need to setup a IP Socket on SCO Open Server 5.06 / 5.07 to a Linux machine.
Al that I want to do is via a simple shell command open a tcpip address, port number, and send a call to a progam with a name of a file on the linux box.
My programming language does not support socket... (1 Reply)
Discussion started by: comcaps
1 Replies
6. UNIX for Advanced & Expert Users
Hi,
I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime.
To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Discussion started by: chandrutiptur
0 Replies
7. Programming
Hi all,
On the server side, one socket is used for listening, the others are used for communicating with the client.
My question is: if i want to set option for socket, which socket should be set on?
If either can be set, what's the different?
Again, what's the different if set option... (1 Reply)
Discussion started by: blademan100
1 Replies
8. Programming
Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct...
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include... (3 Replies)
Discussion started by: cyler
3 Replies
9. Programming
Dear Experts,
i am compiling my code in suse 4.1 which is compiling fine,
but at runtime it is showing me for socket programming error no 88
as i searched in errno.h it is telling me socket operation on non socket,
what is the meaning of this , how to deal with this error , please... (1 Reply)
Discussion started by: vin_pll
1 Replies
10. IP Networking
I need clarification on whether it is okay to set socket options on a listening socket
simultaneously when it is being used in an accept() call?
Following is the scenario:-
-- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies
LEARN ABOUT LINUX
network_namespaces
NETWORK_NAMESPACES(7) Linux Programmer's Manual NETWORK_NAMESPACES(7)
NAME
network_namespaces - overview of Linux network namespaces
DESCRIPTION
Network namespaces provide isolation of the system resources associated with networking: network devices, IPv4 and IPv6 protocol stacks, IP
routing tables, firewall rules, the /proc/net directory (which is a symbolic link to /proc/PID/net), the /sys/class/net directory, various
files under /proc/sys/net, port numbers (sockets), and so on. In addition, network namespaces isolate the UNIX domain abstract socket
namespace (see unix(7)).
A physical network device can live in exactly one network namespace. When a network namespace is freed (i.e., when the last process in the
namespace terminates), its physical network devices are moved back to the initial network namespace (not to the parent of the process).
A virtual network (veth(4)) device pair provides a pipe-like abstraction that can be used to create tunnels between network namespaces, and
can be used to create a bridge to a physical network device in another namespace. When a namespace is freed, the veth(4) devices that it
contains are destroyed.
Use of network namespaces requires a kernel that is configured with the CONFIG_NET_NS option.
SEE ALSO
nsenter(1), unshare(1), clone(2), veth(4), proc(5), sysfs(5), namespaces(7), user_namespaces(7), brctl(8), ip(8), ip-address(8), ip-
link(8), ip-netns(8), iptables(8), ovs-vsctl(8)
Linux 2018-02-02 NETWORK_NAMESPACES(7)