mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
PR_Connect
 | 
						|
==========
 | 
						|
 | 
						|
Initiates a connection on a specified socket.
 | 
						|
 | 
						|
 | 
						|
Syntax
 | 
						|
------
 | 
						|
 | 
						|
.. code::
 | 
						|
 | 
						|
   #include <prio.h>
 | 
						|
 | 
						|
   PRStatus PR_Connect(
 | 
						|
     PRFileDesc *fd,
 | 
						|
     const PRNetAddr *addr,
 | 
						|
     PRIntervalTime timeout);
 | 
						|
 | 
						|
 | 
						|
Parameters
 | 
						|
~~~~~~~~~~
 | 
						|
 | 
						|
The function has the following parameters:
 | 
						|
 | 
						|
``fd``
 | 
						|
   A pointer to a :ref:`PRFileDesc` object representing a socket.
 | 
						|
``addr``
 | 
						|
   A pointer to the address of the peer to which the socket is to be
 | 
						|
   connected.
 | 
						|
``timeout``
 | 
						|
   A value of type :ref:`PRIntervalTime` specifying the time limit for
 | 
						|
   completion of the connect operation.
 | 
						|
 | 
						|
 | 
						|
Returns
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
The function returns one of the following values:
 | 
						|
 | 
						|
-  Upon successful completion of connection setup, ``PR_SUCCESS``.
 | 
						|
-  If unsuccessful, ``PR_FAILURE``. Further information can be obtained
 | 
						|
   by calling :ref:`PR_GetError`.
 | 
						|
 | 
						|
 | 
						|
Description
 | 
						|
-----------
 | 
						|
 | 
						|
:ref:`PR_Connect` is usually invoked on a TCP socket, but it may also be
 | 
						|
invoked on a UDP socket. Both cases are discussed here.
 | 
						|
 | 
						|
If the socket is a TCP socket, :ref:`PR_Connect` establishes a TCP
 | 
						|
connection to the peer. If the socket is not bound, it will be bound to
 | 
						|
an arbitrary local address.
 | 
						|
 | 
						|
:ref:`PR_Connect` blocks until either the connection is successfully
 | 
						|
established or an error occurs. The function uses the lesser of the
 | 
						|
provided timeout and the OS's connect timeout. In particular, if you
 | 
						|
specify ``PR_INTERVAL_NO_TIMEOUT`` as the timeout, the OS's connection
 | 
						|
time limit will be used.
 | 
						|
 | 
						|
If the socket is a UDP socket, there is no connection setup to speak of,
 | 
						|
since UDP is connectionless. If :ref:`PR_Connect` is invoked on a UDP
 | 
						|
socket, it has an overloaded meaning: :ref:`PR_Connect` merely saves the
 | 
						|
specified address as the default peer address for the socket, so that
 | 
						|
subsequently one can send and receive datagrams from the socket using
 | 
						|
:ref:`PR_Send` and :ref:`PR_Recv` instead of the usual :ref:`PR_SendTo` and
 | 
						|
:ref:`PR_RecvFrom`.
 |