socket
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 480
Socket 5.8.8
Socket, sockaddr_in, sockaddr_un, inet_aton, inet_ntoa is a Perl module to load the C socket.h defines and structure manipulator more>>
Socket, sockaddr_in, sockaddr_un, inet_aton, inet_ntoa is a Perl module to load the C socket.h defines and structure manipulators.
SYNOPSIS
use Socket;
$proto = getprotobyname(udp);
socket(Socket_Handle, PF_INET, SOCK_DGRAM, $proto);
$iaddr = gethostbyname(hishost.com);
$port = getservbyname(time, udp);
$sin = sockaddr_in($port, $iaddr);
send(Socket_Handle, 0, 0, $sin);
$proto = getprotobyname(tcp);
socket(Socket_Handle, PF_INET, SOCK_STREAM, $proto);
$port = getservbyname(smtp, tcp);
$sin = sockaddr_in($port,inet_aton("127.1"));
$sin = sockaddr_in(7,inet_aton("localhost"));
$sin = sockaddr_in(7,INADDR_LOOPBACK);
connect(Socket_Handle,$sin);
($port, $iaddr) = sockaddr_in(getpeername(Socket_Handle));
$peer_host = gethostbyaddr($iaddr, AF_INET);
$peer_addr = inet_ntoa($iaddr);
$proto = getprotobyname(tcp);
socket(Socket_Handle, PF_UNIX, SOCK_STREAM, $proto);
unlink(/var/run/usock);
$sun = sockaddr_un(/var/run/usock);
connect(Socket_Handle,$sun);
This module is just a translation of the C socket.h file. Unlike the old mechanism of requiring a translated socket.ph file, this uses the h2xs program (see the Perl source distribution) and your native C compiler. This means that it has a far more likely chance of getting the numbers right. This includes all of the commonly used pound-defines like AF_INET, SOCK_STREAM, etc.
<<lessSYNOPSIS
use Socket;
$proto = getprotobyname(udp);
socket(Socket_Handle, PF_INET, SOCK_DGRAM, $proto);
$iaddr = gethostbyname(hishost.com);
$port = getservbyname(time, udp);
$sin = sockaddr_in($port, $iaddr);
send(Socket_Handle, 0, 0, $sin);
$proto = getprotobyname(tcp);
socket(Socket_Handle, PF_INET, SOCK_STREAM, $proto);
$port = getservbyname(smtp, tcp);
$sin = sockaddr_in($port,inet_aton("127.1"));
$sin = sockaddr_in(7,inet_aton("localhost"));
$sin = sockaddr_in(7,INADDR_LOOPBACK);
connect(Socket_Handle,$sin);
($port, $iaddr) = sockaddr_in(getpeername(Socket_Handle));
$peer_host = gethostbyaddr($iaddr, AF_INET);
$peer_addr = inet_ntoa($iaddr);
$proto = getprotobyname(tcp);
socket(Socket_Handle, PF_UNIX, SOCK_STREAM, $proto);
unlink(/var/run/usock);
$sun = sockaddr_un(/var/run/usock);
connect(Socket_Handle,$sun);
This module is just a translation of the C socket.h file. Unlike the old mechanism of requiring a translated socket.ph file, this uses the h2xs program (see the Perl source distribution) and your native C compiler. This means that it has a far more likely chance of getting the numbers right. This includes all of the commonly used pound-defines like AF_INET, SOCK_STREAM, etc.
Download (12.2MB)
Added: 2007-05-11 License: Perl Artistic License Price:
900 downloads
Socketpipe 1.8
Socketpipe directly connects the input/output of a remote process with local programs over a TCP/IP socket. more>>
Socketpipe project connects over a TCP/IP socket a remote command specified to a local input generation command and/or a local output processing command.
The input and output of the remote command are appropriately redirected so that the remote commands input will come from the local input generation command and the remote commands output will be sent to the local output processing command.
The remote command is executed on the machine accessed through the login command. The socketpipe executable should be available through the execution path in the remote machine.
The braces used for delimiting the commands and their arguments should be space-separated and can be nested. This feature allows you to setup complex and efficient topologies of distributed communicating processes.
Although the initial socketpipe communication setup is performed through client-server intermediaries such as ssh(1) or rsh(1), the communication channel that socketpipe establishes is a direct socket connection between the local and the remote commands.
Without the use of socketpipe, when piping remote data through ssh(1) or rsh(1), each data block is read at the local end by the respective client, is sent to the remote daemon and written out again to the remote process.
The use of socketpipe removes the inefficiency of the multiple data copies and context switches and can in some cases provide dramatic throughput improvements. On the other hand, the confidentiality and integrity of the data passing through socketpipes data channel is not protected; socketpipe should therefore be used only within a confined LAN environment.
(The authentication process uses the protocol of the underlying login program and is no more or less vulnerable than using the program in isolation; ssh(1) remains secure, rsh(1) continues to be insecure.)
Enhancements:
- This version corrects a bug in the command parsing of the Windows version of socketpipe.
<<lessThe input and output of the remote command are appropriately redirected so that the remote commands input will come from the local input generation command and the remote commands output will be sent to the local output processing command.
The remote command is executed on the machine accessed through the login command. The socketpipe executable should be available through the execution path in the remote machine.
The braces used for delimiting the commands and their arguments should be space-separated and can be nested. This feature allows you to setup complex and efficient topologies of distributed communicating processes.
Although the initial socketpipe communication setup is performed through client-server intermediaries such as ssh(1) or rsh(1), the communication channel that socketpipe establishes is a direct socket connection between the local and the remote commands.
Without the use of socketpipe, when piping remote data through ssh(1) or rsh(1), each data block is read at the local end by the respective client, is sent to the remote daemon and written out again to the remote process.
The use of socketpipe removes the inefficiency of the multiple data copies and context switches and can in some cases provide dramatic throughput improvements. On the other hand, the confidentiality and integrity of the data passing through socketpipes data channel is not protected; socketpipe should therefore be used only within a confined LAN environment.
(The authentication process uses the protocol of the underlying login program and is no more or less vulnerable than using the program in isolation; ssh(1) remains secure, rsh(1) continues to be insecure.)
Enhancements:
- This version corrects a bug in the command parsing of the Windows version of socketpipe.
Download (0.020MB)
Added: 2007-04-01 License: BSD License Price:
936 downloads
SocketW r031026
SocketW project is a cross platform (Linux/FreeBSD/Unix/Win32) streaming socket C++ library designed to be easy to use. more>>
SocketW project is a cross platform (Linux/FreeBSD/Unix/Win32) streaming socket C++ library designed to be easy to use.
It supports Unix sockets and TCP/IP sockets with optional SSL/TLS (OpenSSL) support. SocketW allows you to write portable and secure network applications quickly without needing to spend time learning low-level system functions or reading OpenSSL manuals.
<<lessIt supports Unix sockets and TCP/IP sockets with optional SSL/TLS (OpenSSL) support. SocketW allows you to write portable and secure network applications quickly without needing to spend time learning low-level system functions or reading OpenSSL manuals.
Download (0.046MB)
Added: 2006-09-11 License: GPL (GNU General Public License) Price:
1138 downloads
Danga::Socket 1.56
Danga::Socket is an event loop and event-driven async socket base class. more>>
Danga::Socket is an event loop and event-driven async socket base class.
SYNOPSIS
package My::Socket
use Danga::Socket;
use base (Danga::Socket);
use fields (my_attribute);
sub new {
my My::Socket $self = shift;
$self = fields::new($self) unless ref $self;
$self->SUPER::new( @_ );
$self->{my_attribute} = 1234;
return $self;
}
sub event_err { ... }
sub event_hup { ... }
sub event_write { ... }
sub event_read { ... }
sub close { ... }
$my_sock->tcp_cork($bool);
# write returns 1 if all writes have gone through, or 0 if there
# are writes in queue
$my_sock->write($scalar);
$my_sock->write($scalarref);
$my_sock->write(sub { ... }); # run when previous data written
$my_sock->write(undef); # kick-starts
# read max $bytecount bytes, or undef on connection closed
$scalar_ref = $my_sock->read($bytecount);
# watch for writability. not needed with ->write(). write()
# will automatically turn on watch_write when you wrote too much
# and turn it off when done
$my_sock->watch_write($bool);
# watch for readability
$my_sock->watch_read($bool);
# if you read too much and want to push some back on
# readable queue. (not incredibly well-tested)
$my_sock->push_back_read($buf); # scalar or scalar ref
Danga::Socket->AddOtherFds(..);
Danga::Socket->SetLoopTimeout($millisecs);
Danga::Socket->DescriptorMap();
Danga::Socket->WatchedSockets(); # count of DescriptorMap keys
Danga::Socket->SetPostLoopCallback($code);
Danga::Socket->EventLoop();
This is an abstract base class for objects backed by a socket which provides the basic framework for event-driven asynchronous IO, designed to be fast. Danga::Socket is both a base class for objects, and an event loop.
Callers subclass Danga::Socket. Danga::Sockets constructor registers itself with the Danga::Socket event loop, and invokes callbacks on the object for readability, writability, errors, and other conditions.
Because Danga::Socket uses the "fields" module, your subclasses must too.
<<lessSYNOPSIS
package My::Socket
use Danga::Socket;
use base (Danga::Socket);
use fields (my_attribute);
sub new {
my My::Socket $self = shift;
$self = fields::new($self) unless ref $self;
$self->SUPER::new( @_ );
$self->{my_attribute} = 1234;
return $self;
}
sub event_err { ... }
sub event_hup { ... }
sub event_write { ... }
sub event_read { ... }
sub close { ... }
$my_sock->tcp_cork($bool);
# write returns 1 if all writes have gone through, or 0 if there
# are writes in queue
$my_sock->write($scalar);
$my_sock->write($scalarref);
$my_sock->write(sub { ... }); # run when previous data written
$my_sock->write(undef); # kick-starts
# read max $bytecount bytes, or undef on connection closed
$scalar_ref = $my_sock->read($bytecount);
# watch for writability. not needed with ->write(). write()
# will automatically turn on watch_write when you wrote too much
# and turn it off when done
$my_sock->watch_write($bool);
# watch for readability
$my_sock->watch_read($bool);
# if you read too much and want to push some back on
# readable queue. (not incredibly well-tested)
$my_sock->push_back_read($buf); # scalar or scalar ref
Danga::Socket->AddOtherFds(..);
Danga::Socket->SetLoopTimeout($millisecs);
Danga::Socket->DescriptorMap();
Danga::Socket->WatchedSockets(); # count of DescriptorMap keys
Danga::Socket->SetPostLoopCallback($code);
Danga::Socket->EventLoop();
This is an abstract base class for objects backed by a socket which provides the basic framework for event-driven asynchronous IO, designed to be fast. Danga::Socket is both a base class for objects, and an event loop.
Callers subclass Danga::Socket. Danga::Sockets constructor registers itself with the Danga::Socket event loop, and invokes callbacks on the object for readability, writability, errors, and other conditions.
Because Danga::Socket uses the "fields" module, your subclasses must too.
Download (0.018MB)
Added: 2007-04-16 License: Perl Artistic License Price:
924 downloads
gnome-socket 0.1.0
gnome-socket provides a simple library for high-level network asynchronous I/O in GNOME applications. more>>
gnome-socket provides a simple library for high-level network asynchronous I/O in GNOME applications.
gnome-socket is a library that provides simple high-level network access to GNOME applications. Its main features are asynchronous DNS lookup and non-blocking network I/O.
Its designed to use the very flexible glib event loop in order to make integration with GNOME programs easy.
<<lessgnome-socket is a library that provides simple high-level network access to GNOME applications. Its main features are asynchronous DNS lookup and non-blocking network I/O.
Its designed to use the very flexible glib event loop in order to make integration with GNOME programs easy.
Download (0.18MB)
Added: 2007-04-18 License: LGPL (GNU Lesser General Public License) Price:
922 downloads
Libsocketcpp 1.0.7
Libsocketcpp provides a easy-to-use C++ socket library for TCP and UDP functionality. more>>
Libsocketcpp provides a easy-to-use C++ socket library class.
Dispite the name, the TCPSocket class can handle both UDP and TCP connections.
Unfortunatly right now, the class is simple. It does not do anything really fancy like non-blocking sockets, select which interfaces you want to use, etc...
What it does allow you to do is to set up a TCP or UDP server/client and send and receive blocks of data. Plain and simple
Enhancements:
- Fixed missing include inside tcpservertest test program.
- Should be able to compile on RH 7.0 now.
<<lessDispite the name, the TCPSocket class can handle both UDP and TCP connections.
Unfortunatly right now, the class is simple. It does not do anything really fancy like non-blocking sockets, select which interfaces you want to use, etc...
What it does allow you to do is to set up a TCP or UDP server/client and send and receive blocks of data. Plain and simple
Enhancements:
- Fixed missing include inside tcpservertest test program.
- Should be able to compile on RH 7.0 now.
Download (0.14MB)
Added: 2006-09-08 License: GPL (GNU General Public License) Price:
1142 downloads
Raw Socket Library 2.1
Raw Socket Library provides a simple to use raw socket library with IPV6 support. more>>
Raw Socket Library provides a simple to use raw socket library with IPV6 support.
Raw Socket Library provides a simple mechanism to send raw socket packet using IPV4 and IPV6 using a simple struct.
It currently supports TCP, ICMP, UDP, and ICMPv6.
Enhancements:
- ARP has been added but not tested. More IP4 options can be changed at code time now.
<<lessRaw Socket Library provides a simple mechanism to send raw socket packet using IPV4 and IPV6 using a simple struct.
It currently supports TCP, ICMP, UDP, and ICMPv6.
Enhancements:
- ARP has been added but not tested. More IP4 options can be changed at code time now.
Download (0.012MB)
Added: 2007-03-22 License: GPL (GNU General Public License) Price:
963 downloads
phpSocketDaemon 1.0
phpSocketDaemon is a PHP socket daemon framework that can handle thousands of client and server connections. more>>
phpSocketDaemon is a PHP socket daemon framework that can handle thousands of client and server connections, asynchronously, with built-in buffering, state handling, etc.
The implementation of a new TCP client or server service (or a mix thereof) with this library is very easy, and allows maximum flexibility.
Motivation for writing this library:
This project came into existence while i was writing a new, ground breaking IRC chat web application.
To deal with 1000s of concurrent, always on (comet aka hanging iframe) http (server) connections, and an equal amount of IRC client connections, plus being able to interpret and parse and delegate all the messages and events, i needed a very fast, stable, flexible and easy to use daemon library for PHP.
However no such thing existed yet, hence this library was created.
The tarbal includes a demo HTTP server implimentation, which will give you a good impression of what its capable off, and how to use this library.
<<lessThe implementation of a new TCP client or server service (or a mix thereof) with this library is very easy, and allows maximum flexibility.
Motivation for writing this library:
This project came into existence while i was writing a new, ground breaking IRC chat web application.
To deal with 1000s of concurrent, always on (comet aka hanging iframe) http (server) connections, and an equal amount of IRC client connections, plus being able to interpret and parse and delegate all the messages and events, i needed a very fast, stable, flexible and easy to use daemon library for PHP.
However no such thing existed yet, hence this library was created.
The tarbal includes a demo HTTP server implimentation, which will give you a good impression of what its capable off, and how to use this library.
Download (0.015MB)
Added: 2006-12-21 License: LGPL (GNU Lesser General Public License) Price:
1040 downloads
CPP Socket library 0.8.4
CPP Socket library is a small Classlibrary for C++ that supports a easy usage of socket-programming for networking-software. more>>
CPP Socket library is a small Classlibrary for C++ that supports a easy usage of socket-programming for networking-software.
It provides a simple object-oriented interface to the classic C library calls.
With CPPSocket supports the following network protocols:
- TCP (transmission control protocol; needs an established connection from one host to another)
- UDP (user datagram protocol; packets can be sent without an established connection)
- IPv4 (internet protocol version 4; uses 32-bit network addresses)
These protocols are what may also be called TCP/IP.
The library provides two layers of abstraction:
- Low-Level
This is a simple oo interface of the classic socket calls. But it provides some (optional) abstractions for addressing and buffering.
Usefull for more experienced programmers, that have already worked with classic sockets.
- High-Level
This provides somewhat more abstraction and ignores some functionality of the full blown sockets.
But nevertheless it is quite usefull and makes programming of networking software very easy.
So its intended to be used by novice programmers or those who dont want the maximum complexity/flexibility but an easy to use network-interface.
<<lessIt provides a simple object-oriented interface to the classic C library calls.
With CPPSocket supports the following network protocols:
- TCP (transmission control protocol; needs an established connection from one host to another)
- UDP (user datagram protocol; packets can be sent without an established connection)
- IPv4 (internet protocol version 4; uses 32-bit network addresses)
These protocols are what may also be called TCP/IP.
The library provides two layers of abstraction:
- Low-Level
This is a simple oo interface of the classic socket calls. But it provides some (optional) abstractions for addressing and buffering.
Usefull for more experienced programmers, that have already worked with classic sockets.
- High-Level
This provides somewhat more abstraction and ignores some functionality of the full blown sockets.
But nevertheless it is quite usefull and makes programming of networking software very easy.
So its intended to be used by novice programmers or those who dont want the maximum complexity/flexibility but an easy to use network-interface.
Download (MB)
Added: 2006-09-07 License: GPL (GNU General Public License) Price:
678 downloads
Raw Socket Constructor 2.1a
Raw Socket Constructor provides a tool for sending packets from the console. more>>
Raw Socket Constructor provides a tool for sending packets from the console.
Raw Socket Constructor is a tool that uses the Libsock library to create arbitrary TCP, ICMP, UDP, TCP6, ICMP6, or UDP6 packets.
<<lessRaw Socket Constructor is a tool that uses the Libsock library to create arbitrary TCP, ICMP, UDP, TCP6, ICMP6, or UDP6 packets.
Download (0.008MB)
Added: 2007-03-22 License: GPL (GNU General Public License) Price:
950 downloads
Socket::PassAccessRights 0.03
Socket::PassAccessRights is a Perl extension for BSD style file descriptor passing via Unix domain sockets. more>>
Socket::PassAccessRights is a Perl extension for BSD style file descriptor passing via Unix domain sockets.
SYNOPSIS
use Socket::PassAccessRights;
Socket::PassAccessRights::sendfd(fileno(SOCKET), fileno(SEND_ME)) or die;
$fd = Socket::PassAccessRights::recvfd(fileno(SOCKET)) or die;
open FD, ">&=$fd" or die "$!"; # convert int fd to file handle
Implements passing access rights (i.e. file descritors) over Unix domain sockets. Only one fd can be passed at one time and no other data can be sent in the same operation (operation itself involves sending exactly one byte of data to solve EOF detection anomaly).
See test.pl and examples directory for usage examples.
PLATFORMS
This code has only been tested on
* Linux-2.0.38 with glibc-2.0.7 (libc.so.6) and libc.so.5 (BSD4.4 style)
* Linux-2.2.14 with glibc-2.0.7 (libc.so.6) (BSD4.4 style)
* Solaris-2.6 using gcc (BSD4.3 style)
Specifically, the code from [Stevens] did not work out of the box. I had to rename msg.msg_accrights* to msg.control* and send at least one byte. General impression from net is that file descripto passing code seems to be buggy - not just in Linux, but on FreeBSD, too.
<<lessSYNOPSIS
use Socket::PassAccessRights;
Socket::PassAccessRights::sendfd(fileno(SOCKET), fileno(SEND_ME)) or die;
$fd = Socket::PassAccessRights::recvfd(fileno(SOCKET)) or die;
open FD, ">&=$fd" or die "$!"; # convert int fd to file handle
Implements passing access rights (i.e. file descritors) over Unix domain sockets. Only one fd can be passed at one time and no other data can be sent in the same operation (operation itself involves sending exactly one byte of data to solve EOF detection anomaly).
See test.pl and examples directory for usage examples.
PLATFORMS
This code has only been tested on
* Linux-2.0.38 with glibc-2.0.7 (libc.so.6) and libc.so.5 (BSD4.4 style)
* Linux-2.2.14 with glibc-2.0.7 (libc.so.6) (BSD4.4 style)
* Solaris-2.6 using gcc (BSD4.3 style)
Specifically, the code from [Stevens] did not work out of the box. I had to rename msg.msg_accrights* to msg.control* and send at least one byte. General impression from net is that file descripto passing code seems to be buggy - not just in Linux, but on FreeBSD, too.
Download (0.007MB)
Added: 2007-04-19 License: Perl Artistic License Price:
918 downloads
Simple Sockets Library 7c
Simple Sockets Library provides a simple C programming interface to sockets. more>>
Simple Sockets Library provides a simple C programming interface to sockets.
The Simple Sockets Library makes sockets easy to use and comes as public domain source code. It resembles Cs file I/O, uses whatever port is available, has named servers and port reuse, streaming/blocking sockets used, polling support, blocking/selection support via numerous functions, timeout control and firewall support.
Main features:
- Resembles Cs file i/o:
- Sclose() Sgets() Sopen() Sprintf() Sputs() Sread() Sscanf() Swrite() Svprintf()
- Uses currently available ports only, so if a server can be brought up, it will be
- Named sockets -- servers have names, not fixed port addresses!
- (no more REUSEADDR problems, linger setting, zombie sockets!)
- Streaming/blocking sockets used
- Polling supported (ie. avoids blocking):
- Stest() Smasktest() Speek()
- Numerous functions to handle multiple concurrent clients:
- Smaskfdset() Smaskpush() Smasktime() Smaskunset() Smaskwait()
- Smaskget() Smaskset() Smaskunfdset() Smaskuse() Sprtmask()
- Smaskpop() Smasktest()
- Timeout control:
- Stimeoutwait() Smasktime()
- The PortMaster (Spm): Maintains a distributed port/server-name database Each machine runs a PortMaster which maps servers by name to their ports (transparent to programmers and users!)
- Firewall Support
- The PortMaster can (optionally) only "put through" connections from approved machine sites
- Supports "path"ing for sockets: one can use an environment variable to track down a server, by name, on any machine in a group:
- Sopenv()
- Doesnt need root privileges (thats Unix lingo...)
- Now supports fixed ports (servers and/or clients) to facilitate interfacing to non-SSL servers/clients
The Simple Sockets Librarys main purpose is to provide an Application Programming Interface that strongly resembles the standard C librarys file handling interface. Thus programmers find that the Simple Sockets Librarys learning curve is particularly short. As a secondary purpose the Simple Sockets Library helps programmers avoid some common programming problems with sockets (avoided: large buffers that dont transfer in their entirety without special effort, the Nagle algorithms practical effect of often limiting one to five transfers per second, servers whose ports refuse to re-open until two minutes have passed, etc). Strings are null-byte terminated just like regular C/C++ strings, facilitating their ease of use in C/C++ programming.
The Simple Sockets Library preferentially uses names for its servers rather than requiring hard-coded port numbers. Imagine if, instead of files having names, everyone went about saying "use sector 4 and track 14" or somesuch thing. This situation reflects what we now have with sockets -- and when two programs use the same port number for their servers, they cant co-exist simultaneously on a system. However, especially for those whose programs must interface with other programs using hard-coded port numbers, the Simple Socket Library also supports hard-code port numbers.
The Simple Sockets Library opens streaming sockets. Thus the Simple Sockets Librarys sockets provide guaranteed delivery of information in the correct order (unlike datagrams, for example).
The PortMaster (Spm), source code for which is part of the library, provides a "phonebook" to map server names to dynamically allocated port numbers. Port numbers thus wont clash; the operating system determines which ones are currently available and the PortMasters effectively publish the result.
Enhancements:
- (Marcel Satchel) improved for Windows
- (Aug 22, 2005) included the "b" option for Sopen() (block until requested server becomes available)
- (Marcel Satchel) Sinit.c fixed (yet again!)
<<lessThe Simple Sockets Library makes sockets easy to use and comes as public domain source code. It resembles Cs file I/O, uses whatever port is available, has named servers and port reuse, streaming/blocking sockets used, polling support, blocking/selection support via numerous functions, timeout control and firewall support.
Main features:
- Resembles Cs file i/o:
- Sclose() Sgets() Sopen() Sprintf() Sputs() Sread() Sscanf() Swrite() Svprintf()
- Uses currently available ports only, so if a server can be brought up, it will be
- Named sockets -- servers have names, not fixed port addresses!
- (no more REUSEADDR problems, linger setting, zombie sockets!)
- Streaming/blocking sockets used
- Polling supported (ie. avoids blocking):
- Stest() Smasktest() Speek()
- Numerous functions to handle multiple concurrent clients:
- Smaskfdset() Smaskpush() Smasktime() Smaskunset() Smaskwait()
- Smaskget() Smaskset() Smaskunfdset() Smaskuse() Sprtmask()
- Smaskpop() Smasktest()
- Timeout control:
- Stimeoutwait() Smasktime()
- The PortMaster (Spm): Maintains a distributed port/server-name database Each machine runs a PortMaster which maps servers by name to their ports (transparent to programmers and users!)
- Firewall Support
- The PortMaster can (optionally) only "put through" connections from approved machine sites
- Supports "path"ing for sockets: one can use an environment variable to track down a server, by name, on any machine in a group:
- Sopenv()
- Doesnt need root privileges (thats Unix lingo...)
- Now supports fixed ports (servers and/or clients) to facilitate interfacing to non-SSL servers/clients
The Simple Sockets Librarys main purpose is to provide an Application Programming Interface that strongly resembles the standard C librarys file handling interface. Thus programmers find that the Simple Sockets Librarys learning curve is particularly short. As a secondary purpose the Simple Sockets Library helps programmers avoid some common programming problems with sockets (avoided: large buffers that dont transfer in their entirety without special effort, the Nagle algorithms practical effect of often limiting one to five transfers per second, servers whose ports refuse to re-open until two minutes have passed, etc). Strings are null-byte terminated just like regular C/C++ strings, facilitating their ease of use in C/C++ programming.
The Simple Sockets Library preferentially uses names for its servers rather than requiring hard-coded port numbers. Imagine if, instead of files having names, everyone went about saying "use sector 4 and track 14" or somesuch thing. This situation reflects what we now have with sockets -- and when two programs use the same port number for their servers, they cant co-exist simultaneously on a system. However, especially for those whose programs must interface with other programs using hard-coded port numbers, the Simple Socket Library also supports hard-code port numbers.
The Simple Sockets Library opens streaming sockets. Thus the Simple Sockets Librarys sockets provide guaranteed delivery of information in the correct order (unlike datagrams, for example).
The PortMaster (Spm), source code for which is part of the library, provides a "phonebook" to map server names to dynamically allocated port numbers. Port numbers thus wont clash; the operating system determines which ones are currently available and the PortMasters effectively publish the result.
Enhancements:
- (Marcel Satchel) improved for Windows
- (Aug 22, 2005) included the "b" option for Sopen() (block until requested server becomes available)
- (Marcel Satchel) Sinit.c fixed (yet again!)
Download (0.18MB)
Added: 2007-03-13 License: Public Domain Price:
962 downloads
bufsock.py 1.1
bufsock.py is a python module that makes it a little bit easier to work with sockets. more>>
bufsock.py is a python module that makes it a little bit easier to work with sockets, and may also make your I/O faster if youre reading and/or writing lots of tiny packets.
Also, you may find that it makes your network applications more reliable, as the network is allowed to split apart your packets into multiple smaller packets, or aggregate two or more packets into one larger packet, if it decides it needs to do so for reliability or performance.
So you might do a s.recv expecting to get one line of input, but the network decided to batch together two remote s.sends into one s.recv, for example. But the network usually, but not always, will batch up your packets the way youd expect - so this can be a difficult problem to track down.
It supports the following methods:
read(length) brings in a specific number of bytes.
readto(char) reads up thru the next occurence of char
readtomax(char,length) reads up thru the next occurence of char, or length bytes, whichever is less
set_chunk_len(length) says "do reads and writes in increments of length". The chunk length defaults to 4096. You should make this larger on networks that employ jumbo frames to squeeze out more performance!
send(buf) writes the bytes in buf.
flush() is just like stdios (the C librarys) flush function. Call it when you want an output buffer flushed (written immediately).
shutdown(v) just like for a regular socket, except it flushes first.
Usage:
Code snippet:
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((hostname,port))
bs = bufsock.bufsock(sock)
version = bs.readto(n)
print version
<<lessAlso, you may find that it makes your network applications more reliable, as the network is allowed to split apart your packets into multiple smaller packets, or aggregate two or more packets into one larger packet, if it decides it needs to do so for reliability or performance.
So you might do a s.recv expecting to get one line of input, but the network decided to batch together two remote s.sends into one s.recv, for example. But the network usually, but not always, will batch up your packets the way youd expect - so this can be a difficult problem to track down.
It supports the following methods:
read(length) brings in a specific number of bytes.
readto(char) reads up thru the next occurence of char
readtomax(char,length) reads up thru the next occurence of char, or length bytes, whichever is less
set_chunk_len(length) says "do reads and writes in increments of length". The chunk length defaults to 4096. You should make this larger on networks that employ jumbo frames to squeeze out more performance!
send(buf) writes the bytes in buf.
flush() is just like stdios (the C librarys) flush function. Call it when you want an output buffer flushed (written immediately).
shutdown(v) just like for a regular socket, except it flushes first.
Usage:
Code snippet:
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((hostname,port))
bs = bufsock.bufsock(sock)
version = bs.readto(n)
print version
Download (0.002MB)
Added: 2006-05-02 License: GPL (GNU General Public License) Price:
1270 downloads
SOHT 0.6.1
SOHT stands for Socket over HTTP Tunneling and allows you to tunnel socket connections through an HTTP proxy. more>>
SOHT stands for Socket over HTTP Tunneling and allows you to tunnel socket connections through an HTTP proxy.
Restrictive firewalls often prohibit all outgoing trafic except for HTTP.
This application allows you to tunnel socket connections over the HTTP protocol.
This application consists of a server that serves as a proxy and a client which tunnels a socket connection over an HTTP connection to the server.
The current server is written in Java, and there are clients in Java and .NET.
Enhancements:
- Updated to fix an issue that prohibited connections to ports above 32767.
<<lessRestrictive firewalls often prohibit all outgoing trafic except for HTTP.
This application allows you to tunnel socket connections over the HTTP protocol.
This application consists of a server that serves as a proxy and a client which tunnels a socket connection over an HTTP connection to the server.
The current server is written in Java, and there are clients in Java and .NET.
Enhancements:
- Updated to fix an issue that prohibited connections to ports above 32767.
Download (0.33MB)
Added: 2007-03-27 License: BSD License Price:
949 downloads
libshout 2.2
Libshout allows applications to easily communicate and broadcast to an Icecast streaming media server. more>>
Libshout library allows applications to easily communicate and broadcast to an Icecast streaming media server.
It handles the socket connections, metadata communication, and data streaming for the calling application, and lets developers focus on feature sets instead of implementation details.
Enhancements:
- This release includes support for the Speex voice codec, as well as a timing fix for Theora streams and bugfixes when login fails.
<<lessIt handles the socket connections, metadata communication, and data streaming for the calling application, and lets developers focus on feature sets instead of implementation details.
Enhancements:
- This release includes support for the Speex voice codec, as well as a timing fix for Theora streams and bugfixes when login fails.
Download (0.46MB)
Added: 2006-01-05 License: GPL (GNU General Public License) Price:
1397 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above socket search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed