<html lang="en">
<head>
<title>Who is Connected - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Connections.html#Connections" title="Connections">
<link rel="prev" href="Accepting-Connections.html#Accepting-Connections" title="Accepting Connections">
<link rel="next" href="Transferring-Data.html#Transferring-Data" title="Transferring Data">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Who-is-Connected"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Transferring-Data.html#Transferring-Data">Transferring Data</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Accepting-Connections.html#Accepting-Connections">Accepting Connections</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Connections.html#Connections">Connections</a>
<hr>
</div>

<h4 class="subsection">16.9.4 Who is Connected to Me?</h4>

<!-- sys/socket.h -->
<!-- BSD -->
<div class="defun">
&mdash; Function: int <b>getpeername</b> (<var>int socket, struct sockaddr *addr, socklen_t *length-ptr</var>)<var><a name="index-getpeername-1803"></a></var><br>
<blockquote><p>The <code>getpeername</code> function returns the address of the socket that
<var>socket</var> is connected to; it stores the address in the memory space
specified by <var>addr</var> and <var>length-ptr</var>.  It stores the length of
the address in <code>*</code><var>length-ptr</var>.

        <p>See <a href="Socket-Addresses.html#Socket-Addresses">Socket Addresses</a>, for information about the format of the
address.  In some operating systems, <code>getpeername</code> works only for
sockets in the Internet domain.

        <p>The return value is <code>0</code> on success and <code>-1</code> on error.  The
following <code>errno</code> error conditions are defined for this function:

          <dl>
<dt><code>EBADF</code><dd>The argument <var>socket</var> is not a valid file descriptor.

          <br><dt><code>ENOTSOCK</code><dd>The descriptor <var>socket</var> is not a socket.

          <br><dt><code>ENOTCONN</code><dd>The socket <var>socket</var> is not connected.

          <br><dt><code>ENOBUFS</code><dd>There are not enough internal buffers available. 
</dl>
        </p></blockquote></div>

   </body></html>

