Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



Tcl_OpenTcpClient(3)                       Tcl Library Procedures                       Tcl_OpenTcpClient(3)



____________________________________________________________________________________________________________

NAME
       Tcl_OpenTcpClient,  Tcl_MakeTcpClientChannel,  Tcl_OpenTcpServer  - procedures to open channels using
       TCP sockets

SYNOPSIS
       #include <tcl.h>

       Tcl_Channel
       Tcl_OpenTcpClient(interp, port, host, myaddr, myport, async)

       Tcl_Channel
       Tcl_MakeTcpClientChannel(sock)

       Tcl_Channel
       Tcl_OpenTcpServer(interp, port, myaddr, proc, clientData)


ARGUMENTS
       Tcl_Interp *interp (in)                    Tcl interpreter to use for error reporting.   If  non-NULL
                                                  and  an  error  occurs,  an  error  message is left in the
                                                  interpreter's result.

       int port (in)                              A port number to connect to as a client or to listen on as
                                                  a server.

       const char *host (in)                      A  string specifying a host name or address for the remote
                                                  end of the connection.

       int myport (in)                            A port number for the client's end of the socket.  If 0, a
                                                  port number is allocated at random.

       const char *myaddr (in)                    A  string  specifying the host name or address for network
                                                  interface to use for the local end of the connection.   If
                                                  NULL, a default interface is chosen.

       int async (in)                             If  nonzero, the client socket is connected asynchronously
                                                  to the server.

       ClientData sock (in)                       Platform-specific handle for client TCP socket.

       Tcl_TcpAcceptProc *proc (in)               Pointer to a procedure to invoke each time a  new  connec-tion connection
                                                  tion is accepted via the socket.

       ClientData clientData (in)                 Arbitrary one-word value to pass to proc.
____________________________________________________________________________________________________________


DESCRIPTION
       These  functions  are convenience procedures for creating channels that communicate over TCP sockets.
       The operations on a channel are described in the manual entry for Tcl_OpenFileChannel.


TCL_OPENTCPCLIENT
       Tcl_OpenTcpClient opens a client TCP socket connected to a port on a specific  host,  and  returns  a
       channel  that  can  be  used  to communicate with the server. The host to connect to can be specified
       either as a domain name style name (e.g. www.sunlabs.com), or as a string containing the alphanumeric
       representation  of  its four-byte address (e.g.  127.0.0.1). Use the string localhost to connect to a
       TCP socket on the host on which the function is invoked.

       The myaddr and myport arguments allow a client to specify an address for the local end of the connec-tion. connection.
       tion.   If  myaddr  is  NULL,  then an interface is chosen automatically by the operating system.  If
       myport is 0, then a port number is chosen at random by the operating system.

       If async is zero, the call to Tcl_OpenTcpClient returns only after the client socket has either  suc-cessfully successfully
       cessfully  connected  to the server, or the attempted connection has failed.  If async is nonzero the
       socket is connected asynchronously and the returned channel may not yet be connected  to  the  server
       when the call to Tcl_OpenTcpClient returns. If the channel is in blocking mode and an input or output
       operation is done on the channel before the connection is completed or  fails,  that  operation  will
       wait  until  the  connection either completes successfully or fails. If the channel is in nonblocking
       mode, the input or output operation will return immediately and a subsequent call to Tcl_InputBlocked
       on the channel will return nonzero.

       The  returned  channel  is opened for reading and writing.  If an error occurs in opening the socket,
       Tcl_OpenTcpClient returns NULL and records a POSIX error code that can be retrieved  with  Tcl_GetEr-rno. Tcl_GetErrno.
       rno.  In addition, if interp is non-NULL, an error message is left in the interpreter's result.

       The newly created channel is not registered in the supplied interpreter; to register it, use Tcl_Reg-isterChannel. Tcl_RegisterChannel.
       isterChannel.  If one of the standard channels, stdin, stdout or stderr was  previously  closed,  the
       act of creating the new channel also assigns it as a replacement for the standard channel.


TCL_MAKETCPCLIENTCHANNEL
       Tcl_MakeTcpClientChannel  creates  a  Tcl_Channel around an existing, platform specific, handle for a
       client TCP socket.

       The newly created channel is not registered in the supplied interpreter; to register it, use Tcl_Reg-isterChannel. Tcl_RegisterChannel.
       isterChannel.   If  one  of the standard channels, stdin, stdout or stderr was previously closed, the
       act of creating the new channel also assigns it as a replacement for the standard channel.


TCL_OPENTCPSERVER
       Tcl_OpenTcpServer opens a TCP socket on the local host on a specified port and  uses  the  Tcl  event
       mechanism to accept requests from clients to connect to it. The myaddr argument specifies the network
       interface.  If myaddr is NULL the special address INADDR_ANY should be used to allow connections from
       any network interface.  Each time a client connects to this socket, Tcl creates a channel for the new
       connection and invokes proc with information about the channel. Proc must match the following  proto-type: prototype:
       type:
              typedef void Tcl_TcpAcceptProc(
                      ClientData clientData,
                      Tcl_Channel channel,
                      char *hostName,
                      int port);

       The  clientData  argument  will  be the same as the clientData argument to Tcl_OpenTcpServer, channel
       will be the handle for the new channel, hostName points to a string containing the name of the client
       host  making  the  connection,  and  port  will contain the client's port number.  The new channel is
       opened for both input and output.  If proc raises an error, the connection is  closed  automatically.
       Proc has no return value, but if it wishes to reject the connection it can close channel.

       Tcl_OpenTcpServer  normally  returns  a  pointer  to a channel representing the server socket.  If an
       error occurs, Tcl_OpenTcpServer returns NULL and records a POSIX error code  that  can  be  retrieved
       with  Tcl_GetErrno.   In  addition,  if  the interpreter is non-NULL, an error message is left in the
       interpreter's result.

       The channel returned by Tcl_OpenTcpServer cannot be used for either input or output.  It is simply  a
       handle  for the socket used to accept connections.  The caller can close the channel to shut down the
       server and disallow further connections from new clients.

       TCP  server  channels  operate  correctly  only  in  applications  that   dispatch   events   through
       Tcl_DoOneEvent  or through Tcl commands such as vwait; otherwise Tcl will never notice that a connec-tion connection
       tion request from a remote client is pending.

       The newly created channel is not registered in the supplied interpreter; to register it, use Tcl_Reg-isterChannel. Tcl_RegisterChannel.
       isterChannel.   If  one  of the standard channels, stdin, stdout or stderr was previously closed, the
       act of creating the new channel also assigns it as a replacement for the standard channel.


PLATFORM ISSUES
       On Unix platforms, the socket handle is a Unix file descriptor as returned by the socket system call.
       On the Windows platform, the socket handle is a SOCKET as defined in the WinSock API.


SEE ALSO
       Tcl_OpenFileChannel(3), Tcl_RegisterChannel(3), vwait(n)


KEYWORDS
       client, server, TCP



Tcl                                                  8.0                                Tcl_OpenTcpClient(3)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Tcl.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Tcl через их страницу создания отчетов ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.