Funciones de red para conexiones y para enviar datos entre clientes a través de NAT (Traducción de direcciones de red), siempre que sea posible.
ADVERTENCIA: Esta API está obsoleta y es posible que se elimine de la próxima versión del SDK de Steamworks. Por favor usa
ISteamNetworkingSockets o
ISteamNetworkingMessages en su lugar. Consulta
Conectividad de red de Steam para obtener más información.
Funciones miembro
Las funciones miembro para
ISteamNetworking
se llaman a través de la función de acceso global
SteamNetworking()
.
AcceptP2PSessionWithUser
bool AcceptP2PSessionWithUser( CSteamID steamIDRemote );
Nombre | Tipo | Descripción |
steamIDRemote | CSteamID | Id. de Steam del usuario que nos envió el paquete inicial. |
Permite al juego especificar si acepta un paquete entrante. Esta función ha de llamarse antes de que se establezca una conexión real con un usuario remoto; el juego podrá decidir si permite o no al usuario remoto comunicarse con él.
Cuando un usuario remoto al que no se ha enviado un paquete recientemente intente enviar primero un paquete, el juego recibirá la función callback
P2PSessionRequest_t. Esta función contiene el id. de Steam del usuario que quiere enviar el paquete. Como respuesta a esta función callback verificarás si es alguien con quien te quieres comunicar (por ejemplo si estáis en la misma sala) y entonces, aceptarás la conexión; O si no quieres comunicarte y simplemente la ignorarás. Si el usuario continúa enviándote paquetes, seguirás recibiendo
P2PSessionRequest_t. Llamar a
SendP2PPacket para comunicarse con el otro usuario, acepta implícitamente la solicitud de sesión.
¡Ten en cuenta que llamar a esta función solo debe realizarse como respuesta a la función callback
P2PSessionRequest_t!
Devuelve: bool
true si tiene éxito
false solo si
steamIDRemote
no es válido.
AllowP2PPacketRelay
bool AllowP2PPacketRelay( bool bAllow );
Nombre | Tipo | Descripción |
bAllow | bool | |
Permite o impide que las conexiones P2P se retransmitan por medio de los servidores de Steam cuando no pueda realizarse una conexión directa o a través de NAT.
Esto solo se aplica a las conexiones creadas después de establecer este valor y a las conexiones existentes que deban reconectarse automáticamente después de establecer este valor.
De forma predeterminada, se permite la retransmisión de paquetes P2P.
Devuelve: bool
Siempre devuelve
true.
CloseP2PChannelWithUser
bool CloseP2PChannelWithUser( CSteamID steamIDRemote, int nChannel );
Nombre | Tipo | Descripción |
steamIDRemote | CSteamID | Id. de Steam del usuario con el que se va a cerrar la conexión. |
nChannel | int | El canal a cerrar. |
Cierra el canal P2P especificado al terminar de hablar con un usuario por ese canal.
Una vez que se hayan cerrado todos los canales para un usuario, se cerrará la sesión abierta para el usuario y los nuevos datos de este usuario provocarán un nuevo callback
P2PSessionRequest_t.
Devuelve: bool
true si el canal se cerró correctamente; de lo contrario,
false si no había ninguna sesión o canal activo con el usuario.
CloseP2PSessionWithUser
bool CloseP2PSessionWithUser( CSteamID steamIDRemote );
Nombre | Tipo | Descripción |
steamIDRemote | CSteamID | Id. de Steam del usuario con el que se va a cerrar la conexión. |
Se debe llamar al terminar la comunicación con el usuario ya que liberará todos los recursos internos que se asignaron para la conexión.
Si el usuario remoto intenta enviarte datos nuevamente, se mandará otra vez la función callback
P2PSessionRequest_t.
Devuelve: bool
true si la sesión fue cerrada exitosamente; de lo contrario,
false si no se abrió ninguna conexión con
steamIDRemote
.
CreateConnectionSocket
SNetSocket_t CreateConnectionSocket( uint32 nIP, uint16 nPort, int nTimeoutSec );
Crea un socket e inicia la conexión con un destino remoto.
Es parte de un conjunto de funciones más antiguas diseñado conforme al modelo de sockets TCP de Berkeley. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: SNetSocket_tCreateListenSocket
SNetListenSocket_t CreateListenSocket( int nVirtualP2PPort, uint32 nIP, uint16 nPort, bool bAllowUseOfPacketRelay );
Nombre | Tipo | Descripción |
nVirtualP2PPort | int | |
nIP | uint32 | |
nPort | uint16 | |
bAllowUseOfPacketRelay | bool | |
Crea un socket y escucha por si otros se conectan.
Activará una función callback
SocketStatusCallback_t cuando se conecte otro cliente.
nVirtualP2PPort es el id. único al que se conectará el cliente, en caso de que tengas varios puertos.
Por lo general, esto solo puede ser 0 a menos que quieras múltiples conjuntos de conexiones.
unIP es la dirección IP local a la que se va a unir.
Pasa a 0 si quieres simplemente la IP local predeterminada.
unPort es el puerto que se va a utilizar.
Pasa a 0 si no quieres que los usuarios puedan conectarse a través de IP/Puerto, sino que esperas que siempre sean conexiones P2P.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: SNetListenSocket_tCreateP2PConnectionSocket
SNetSocket_t CreateP2PConnectionSocket( CSteamID steamIDTarget, int nVirtualPort, int nTimeoutSec, bool bAllowUseOfPacketRelay );
Nombre | Tipo | Descripción |
steamIDTarget | CSteamID | |
nVirtualPort | int | |
nTimeoutSec | int | |
bAllowUseOfPacketRelay | bool | |
Crea un socket e inicia la conexión con un destino remoto.
se puede conectar a través de una identificación de Steam (cliente o servidor de juegos) conocida, o directamente a una IP
en caso de éxito se activará una función callback SocketStatusCallback_t
si falla o se agota el tiempo de espera, se activará una función callback SocketStatusCallback_t con un código de falla en m_eSNetSocketState
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: SNetSocket_tDestroyListenSocket
bool DestroyListenSocket( SNetListenSocket_t hSocket, bool bNotifyRemoteEnd );
Al destruir un conector de escucha, todos los sockets normales que haya generado se eliminan automáticamente.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: bool
DestroySocket
bool DestroySocket( SNetSocket_t hSocket, bool bNotifyRemoteEnd );
Nombre | Tipo | Descripción |
hSocket | SNetSocket_t | |
bNotifyRemoteEnd | bool | |
Desconecta la conexión al socket, si existe, e invalida el identificador o handle.
cualquier dato no leído en el socket será desechado
si se establece bNotifyRemoteEnd, el socket no se destruirá completamente hasta que el extremo remoto reconozca la desconexión.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: bool
GetListenSocketInfo
bool GetListenSocketInfo( SNetListenSocket_t hListenSocket, uint32 *pnIP, uint16 *pnPort );
Devuelve el puerto local al que está enlazado el socket de escucha.
*pnIP y *pnPort serán 0 si el socket se ha configurado para escuchar solamente conexiones P2P.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: bool
GetMaxPacketSize
int GetMaxPacketSize( SNetSocket_t hSocket );
Obtiene el tamaño máximo de paquete en bytes.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: int
GetP2PSessionState
bool GetP2PSessionState( CSteamID steamIDRemote, P2PSessionState_t *pConnectionState );
Nombre | Tipo | Descripción |
steamIDRemote | CSteamID | El usuario cuya información de estado de sesión activa se desea obtener. |
pConnectionState | P2PSessionState_t * | Devuelve el estado. |
Rellena una estructura
P2PSessionState_t con detalles sobre la conexión, como si hay o no una conexión activa; número de bytes en cola en la conexión; el último código de error, si lo hubiera; si se está utilizando o no un servidor de retransmisión; y la IP y el puerto del usuario remoto, si se conocen.
Esto solo debería necesitarse para fines de depuración.
Devuelve: bool
true si
pConnectionState
se completó; de lo contrario,
false si no hubo una sesión abierta con el usuario especificado.
Por ejemplo:P2PSessionState_t p2pSessionState;
SteamNetworking()->GetP2PSessionState( steamIDremote, &p2pSessionState );
GetSocketConnectionType
ESNetSocketConnectionType GetSocketConnectionType( SNetSocket_t hSocket );
Devuelve true para describir cómo se conectó finalmente el socket.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: ESNetSocketConnectionTypeGetSocketInfo
bool GetSocketInfo( SNetSocket_t hSocket, CSteamID *pSteamIDRemote, int *peSocketStatus, uint32 *punIPRemote, uint16 *punPortRemote );
Devuelve información sobre el socket especificado y rellena el contenido de los punteros.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: bool
IsDataAvailable
bool IsDataAvailable( SNetListenSocket_t hListenSocket, uint32 *pcubMsgSize, SNetSocket_t *phSocket );
Comprueba los datos de cualquier socket que se haya conectado a través de este socket de escucha.
Devuelve false si no hay datos restantes
llena *pcubMsgSize con el tamaño del siguiente mensaje, en bytes
llena *phSocket con el socket en donde los datos están disponibles.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: bool
IsDataAvailableOnSocket
bool IsDataAvailableOnSocket( SNetSocket_t hSocket, uint32 *pcubMsgSize );
Devuelve false si no queda ningún dato.
Rellena *pcubMsgSize con el tamaño del siguiente mensaje en bytes.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: bool
IsP2PPacketAvailable
bool IsP2PPacketAvailable( uint32 *pcubMsgSize, int nChannel = 0 );
Nombre | Tipo | Descripción |
pcubMsgSize | uint32 * | Devuelve el tamaño del paquete. |
nChannel | int | Canal en el que se comprobará si hay algún paquete disponible. |
Comprueba si hay un paquete P2P disponible para leer y obtiene el tamaño del mensaje, si lo hay.
Se debe llamar en un bucle por cada canal que se esté usando. Si hay un paquete disponible, debe llamar a
ReadP2PPacket para obtener los datos del paquete.
Devuelve: bool
true si hay un paquete disponible; de lo contrario,
false.
ReadP2PPacket
bool ReadP2PPacket( void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, CSteamID *psteamIDRemote, int nChannel = 0 );
Nombre | Tipo | Descripción |
pubDest | void * | Devuelve los datos del paquete al copiarlos en este búfer. |
cubDest | uint32 | El tamaño asignado para pubDest . Debe ser igual al tamaño que devuelve IsP2PPacketAvailable o al tamaño del paquete más grande. |
pcubMsgSize | uint32 * | Devuelve el tamaño del paquete. |
psteamIDRemote | CSteamID * | Devuelve el id. de Steam del usuario que envió este paquete. |
nChannel | int | Canal por el que se envió el paquete. |
Lee un paquete que ha sido enviado por otro usuario a través de
SendP2PPacket.
Si el búfer
cubDest
es demasiado pequeño para el paquete, el mensaje se truncará.
Esta llamada no produce bloqueo y devuelve false si no hay ningún dato disponible.
Antes de llamar a esto, deberías haber llamado a
IsP2PPacketAvailable.
Devuelve: bool
true si un paquete fue leído con éxito; de lo contrario,
false si no hay ningún paquete disponible.
Por ejemplo:uint32 msgSize = 0;
while ( SteamNetworking()->IsP2PPacketAvailable( &msgSize ) )
{
void *packet = malloc( msgSize );
CSteamID steamIDRemote;
uint32 bytesRead = 0;
if ( SteamNetworking()->ReadP2PPacket( packet, msgSize, &bytesRead, &steamIDRemote ) )
{
// el código de envío del mensaje va aquí
}
free( packet );
}
RetrieveData
bool RetrieveData( SNetListenSocket_t hListenSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize, SNetSocket_t *phSocket );
Recupera datos de cualquier conector que se haya conectado a través de este socket de escucha.
Rellena pubDest con el contenido del mensaje
los mensajes siempre están completos, del mismo tamaño que se enviaron (es decir, empaquetados, no transmitidos)
Si *pcubMsgSize < cubDest, solo se escriben datos parciales
devuelve false si no hay datos disponibles
llena *phSocket con el socket en donde los datos están disponibles.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Devuelve: bool
RetrieveDataFromSocket
bool RetrieveDataFromSocket( SNetSocket_t hSocket, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize );
Completa pubDest con el contenido del mensaje.
los mensajes siempre están completos, del mismo tamaño que se enviaron (es decir, empaquetados, no transmitidos)
Si *pcubMsgSize < cubDest, solo se escriben datos parciales
devuelve false si no hay datos disponibles
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets Berkeley TCP. Es preferible que se usen las funciones P2P, pues son más sólidas y las funciones más antiguas acabarán por eliminarse.
Devuelve: bool
SendDataOnSocket
bool SendDataOnSocket( SNetSocket_t hSocket, void *pubData, uint32 cubData, bool bReliable );
enviando datos
debe ser un identificador para un socket conectado
todos los datos se envían a través de UDP y, por lo tanto, los tamaños de envío están limitados a 1200 bytes; después de esto, muchos routers comenzarán a perder paquetes
usa la bandera confiable con precaución; aunque la tasa de reenvío es bastante agresiva,
todavía puede causar bloqueos en la recepción de datos (como TCP).
Devuelve: bool
SendP2PPacket
bool SendP2PPacket( CSteamID steamIDRemote, const void *pubData, uint32 cubData, EP2PSend eP2PSendType, int nChannel = 0 );
Nombre | Tipo | Descripción |
steamIDRemote | CSteamID | El usuario al que se envía el paquete. |
pubData | const void * | El vector de bytes sin procesar para el paquete de datos a enviar. El tamaño máximo de este paquete se define mediante eP2PSendType . |
cubData | uint32 | El tamaño en bytes de pubData . |
eP2PSendType | EP2PSend | Especifica cómo se desea que se transmitan los datos, es decir, de forma fiable, de forma no fiable, mediante búfer, etc. |
nChannel | int | El canal que actúa como un puerto virtual para enviar este paquete y te permite ayudar a enrutar mensajes a diferentes sistemas. Tendrás que llamar a ReadP2PPacket en el otro extremo con el mismo número de canal para recuperar los datos en el otro extremo. El uso de diferentes canales para hablar con el mismo usuario seguirá utilizando la misma conexión P2P subyacente, ahorrando en recursos. Usa 0 para el canal principal, o si no usa esta función. |
Envía un paquete P2P al usuario especificado.
Esta es una API sin estado que establece automáticamente conexiones a través de redes NAT o del servidor de retransmisión de Steam.
NOTA: El primer paquete enviado podría retrasarse mientras se ejecuta el código de cruce de redes NAT.
Consulta
EP2PSend para las descripciones de las diferentes formas de envío de paquetes.
El tipo de datos que envías es arbitrario; puedes usar sistemas comercializados como
Búfers de protocolo o
Cap'n Proto para codificar los paquetes de forma eficiente, o puedes crear tu propio sistema de mensajería.
Devuelve: bool
Activa una función callback
P2PSessionRequest_t.
true si el paquete se envió con éxito.
Ten en cuenta que esto no significa que se haya recibido correctamente, si no podemos comunicarnos con el usuario después de un tiempo de espera de 20 segundos, entonces se publicará un error a través de la función callback
P2PSessionConnectFail_t.
false bajo las siguientes condiciones:
- El paquete es demasiado grande para el tipo de envío.
- Id. de Steam de destino no es válido.
- Hay demasiados bytes en la cola de envío.
Devoluciones de llamada
Estas son funciones callback que pueden activarse llamando a
SteamAPI_RunCallbacks. Muchas de estas se activarán directamente en respuesta a las funciones miembro de
ISteamNetworking
.
P2PSessionConnectFail_t
Se llama cuando los paquetes no pueden comunicarse con el usuario especificado.
Todos los paquetes en cola que no se hayan enviado en este momento se eliminarán, los intentos adicionales de enviar volverán a intentar la conexión (pero se eliminarán si volvemos a fallar).
Nombre | Tipo | Descripción |
m_steamIDRemote | CSteamID | El usuario a quien intentábamos enviar los paquetes. |
m_eP2PSessionError | uint8 | Indica la razón de los problemas que están apareciendo. En realidad, un EP2PSessionError. |
P2PSessionRequest_t
Un usuario desea comunicarse con nosotros por el canal P2P a través de
SendP2PPacket. En respuesta, debes realizar una llamada a
AcceptP2PSessionWithUser si deseas abrir el canal de red con ellos.
Nombre | Tipo | Descripción |
m_steamIDRemote | CSteamID | El usuario que desea iniciar una sesión P2P con nosotros. |
Funciones asociadas: SendP2PPacketSocketStatusCallback_t
Llamado cuando el estado de un socket ha cambiado, se usa como parte de las llamadas
CreateListenSocket y
CreateP2PConnectionSocket.
Es parte de un conjunto de funciones más antiguo diseñado conforme al modelo de sockets TCP de Berkeley. Es preferible que uses las funciones P2P, ya que son más sólidas y las funciones más antiguas acabarán eliminándose.
Nombre | Tipo | Descripción |
m_hSocket | SNetSocket_t | El conector empleado para enviar datos al host remoto o para recibirlos de este host. |
m_hListenSocket | SNetListenSocket_t | Este es el socket del servidor que se estaba escuchando; NULL si se trataba de una conexión saliente. |
m_steamIDRemote | CSteamID | El id. de Steam remoto al que se ha conectado, si lo tuviese. |
m_eSNetSocketState | int | Estado del socket, ESNetSocketState |
Structs
Estas son las estructuras que pueden devolver las funciones de ISteamNetworking y con las que pueden interactuar.
P2PSessionState_t
Estado de conexión con un usuario específico, devuelto por
GetP2PSessionState. Esta es la información, al nivel estructural más básico, de lo que está sucediendo con una llamada previa a
SendP2PPacket. No suele ser necesaria, excepto en caso de depuración.
Nombre | Tipo | Descripción |
m_bConnectionActive | uint8 | ¿Tenemos una conexión abierta activa con el usuario ( true) o no ( false)? |
m_bConnecting | uint8 | ¿Actualmente estamos intentando establecer una conexión con el usuario (true) o no (false)? |
m_eP2PSessionError | uint8 | Último error registrado en el socket. Esto devuelve un EP2PSessionError. |
m_bUsingRelay | uint8 | ¿Esta conexión está pasando por un servidor de retransmisión Steam (true) o no (false)? |
m_nBytesQueuedForSend | int32 | El número de bytes en cola para enviárselo al usuario. |
m_nPacketsQueuedForSend | int32 | El número de paquetes en cola para enviárselo al usuario. |
m_nRemoteIP | uint32 | La IP del host remoto, si estuviese establecida. Podría ser un servidor de retransmisión de Steam. Solo existe con fines de compatibilidad con las API de autenticación más antiguas. |
m_nRemotePort | uint16 | El puerto del host remoto, si estuviese establecido. Podría ser un servidor de retransmisión de Steam. Solo existe con fines de compatibilidad con las API de autenticación más antiguas. |
Enums
Estas son las enumeraciones definidas para usarse con ISteamNetworking.
EP2PSend
Especifica el tipo de envío de
SendP2PPacket.
Por lo general,
k_EP2PSendUnreliable
es lo que deseas para paquetes tipo UDP,
k_EP2PSendReliable
para paquetes tipo TCP.
Nombre | Valor | Descripción |
k_EP2PSendUnreliable | 0 | Envío UDP básico. Los paquetes no pueden superar los 1 200 bytes (el tamaño MTU normal). Se puede perder o llegar fuera de servicio (raro). La API remitente posee cierto conocimiento de la conexión subyacente; por tanto, si no se logra cruzar la red NAT o si hay un ajuste reconocido que afecta a la conexión, el paquete se asignará a un lote hasta que la conexión se vuelva a abrir. |
k_EP2PSendUnreliableNoDelay | 1 | Igual que la anterior, pero si la conexión P2P subyacente no está establecida aún, el paquete simplemente se descartará. El uso de esto en el primer paquete enviado a un host remoto casi garantiza que el paquete se eliminará. Esto solo es realmente útil para tipos de datos que nunca deberían almacenarse en búfer, es decir, paquetes de carga útil de voz. |
k_EP2PSendReliable | 2 | Mensaje fiable de envío. Puede enviar hasta 1 MB de datos en un solo mensaje. Hace fragmentación/reensamblado de mensajes bajo el "capó", así como una ventana deslizante para envíos eficientes de grandes fragmentos de datos. |
k_EP2PSendReliableWithBuffering | 3 | Como se indicó anteriormente, pero aplica el algoritmo de Nagle al envío: los envíos se acumularán hasta que el tamaño de MTU actual (generalmente ~1200 bytes, pero puede cambiar) o que haya pasado ~200 ms (algoritmo de Nagle). Esto es útil si deseas enviar un conjunto de mensajes más pequeños pero hacer que se unan en un solo paquete. Dado que todo el flujo confiable está ordenado, puedes hacer varios envíos de mensajes pequeños con k_EP2PSendReliableWithBuffering y luego hacer un k_EP2PSendReliable normal para forzar que se envíen todos los datos almacenados. |
EP2PSessionError
Lista de posibles errores devueltos por
SendP2PPacket, estos se enviarán en la función callback
P2PSessionConnectFail_t.
Nombre | Valor | Descripción |
k_EP2PSessionErrorNone | 0 | No hubo error. |
k_EP2PSessionErrorNotRunningApp | 1 | El usuario objetivo no está ejecutando el mismo juego. |
k_EP2PSessionErrorNoRightsToApp | 2 | El usuario local no posee la aplicación que se está ejecutando. |
k_EP2PSessionErrorDestinationNotLoggedIn | 3 | El usuario objetivo no está conectado a Steam. |
k_EP2PSessionErrorTimeout | 4 | La conexión expiró debido a que el usuario de destino no respondió, quizás no estén llamando a AcceptP2PSessionWithUser. Los firewalls corporativos también pueden bloquear esto (NAT transversal no es cortafuegos firewall), asegúrate de que los puertos UDP 3478, 4379 y 4380 estén abiertos en una dirección de salida. |
k_EP2PSessionErrorMax | 5 | Sin uso. |
ESNetSocketConnectionType
Describe cómo está conectado actualmente el socket. Usado solo por la API para redes antiguas.
Nombre | Valor | Descripción |
k_ESNetSocketConnectionTypeNotConnected | 0 | |
k_ESNetSocketConnectionTypeUDP | 1 | |
k_ESNetSocketConnectionTypeUDPRelay | 2 | |
ESNetSocketState
Indicadores de progreso de la conexión, utilizados por
CreateP2PConnectionSocket.
Nombre | Valor | Descripción |
k_ESNetSocketStateInvalid | 0 | |
k_ESNetSocketStateConnected | 1 | La comunicación es válida. |
k_ESNetSocketStateInitiated | 10 | Estados mientras se establece una conexión. La máquina de estado de conexión ha comenzado. |
k_ESNetSocketStateLocalCandidatesFound | 11 | conexiones P2P Hemos encontrado nuestra información local de IP. |
k_ESNetSocketStateReceivedRemoteCandidates | 12 | Hemos recibido información de la máquina remota acerca de su información IP a través del backend de Steam. |
k_ESNetSocketStateChallengeHandshake | 15 | Conexiones directas. Hemos recibido un paquete de desafío del servidor. |
k_ESNetSocketStateDisconnecting | 21 | Estados de fallo La API lo cerró, y estamos en el proceso de decirle al otro lado. |
k_ESNetSocketStateLocalDisconnect | 22 | La API cerró la conexión y se ha completado el cierre. |
k_ESNetSocketStateTimeoutDuringConnect | 23 | Se ha agotado el tiempo de espera mientras se intentaba llevar a cabo la conexión. |
k_ESNetSocketStateRemoteEndDisconnected | 24 | El extremo remoto se ha desconectado. |
k_ESNetSocketStateConnectionBroken | 25 | Se ha interrumpido la conexión, el otro extremo ha desaparecido o nuestra conexión local de red se ha interrumpido. |
Typedefs
Estas son las definiciones de tipo establecidas para usarse con ISteamNetworking.
Nombre | Tipo de base | Descripción |
SNetListenSocket_t | uint32 | CreateListenSocket() |
SNetSocket_t | uint32 | Handle a un socket CreateP2PConnectionSocket() |
Constantes
Estas son las constantes definidas para usarse con ISteamNetworking.
Nombre | Tipo | Valor | Descripción |
STEAMNETWORKING_INTERFACE_VERSION | const char * | "SteamNetworking005" | |