Download TCP/IP - Hilscher Knowledge Base

Transcript
The application interface
87/134
Source code example
#define REMOTE_IP_ADDR
(0xC0A80A6A)
/* IP address of remote host:
/* 192.168.10.106
*/
*/
#define REMOTE_PORT
(1028)
/* TCP/UDP port of remote host.
*/
TLR_RESULT
ApTcpCmdConnectReq( TCPIP_AP_TASK_RSC_T FAR* ptRsc )
{
TCPIP_PACKET_TCP_CMD_CONNECT_REQ_T* ptPck;
if( TLR_POOL_PACKET_GET( ptRsc->tLoc.hPool, &ptPck ) != TLR_S_OK )
{
return( TLR_E_FAIL );
}
TLS_QUE_LINK_SET_NEW_DESTID( ptRsc->tRem.tQueTcpTask, ptRsc->tLoc.ulSocket );
TLS_QUE_LINK_SET_PACKET_SRC( ptPck, ptRsc->tLoc.tLnkSrc );
ptPck->tHead.ulLen
ptPck->tHead.ulId
ptPck->tHead.ulSta
ptPck->tHead.ulCmd
ptPck->tHead.ulExt
ptPck->tHead.ulRout
=
=
=
=
=
=
TCPIP_DATA_TCP_CMD_CONNECT_REQ_SIZE;
++ptRsc->tLoc.ulSndTcpId;
0;
TCPIP_TCP_CMD_CONNECT_REQ;
0;
0;
ptPck->tData.ulIpAddr
ptPck->tData.ulPort
ptPck->tData.ulTimeoutSend
ptPck->tData.ulTimeoutConnect
=
=
=
=
REMOTE_IP_ADDR;
REMOTE_PORT;
0; /* 0 = Default timeout (31 s) */
0; /* 0 = Default timeout (31 s) */
if( TLS_QUE_SENDPACKET_FIFO( ptRsc->tRem.tQueTcpTask,
ptPck,
100
) != TLR_S_OK )
{
TLR_POOL_PACKET_RELEASE( ptRsc->tLoc.hPool, ptPck );
return( TLR_E_FAIL );
}
return( TLR_S_OK );
}
Packet structure
typedef struct TCPIP_DATA_TCP_CMD_CONNECT_CNF_Ttag
{
TLR_UINT32 ulIpAddr;
TLR_UINT32 ulPort;
} TCPIP_DATA_TCP_CMD_CONNECT_CNF_T;
#define TCPIP_DATA_TCP_CMD_CONNECT_CNF_SIZE \
(sizeof(TCPIP_DATA_TCP_CMD_CONNECT_CNF_T))
typedef struct TCPIP_PACKET_TCP_CMD_CONNECT_CNF_Ttag
{
TLR_PACKET_HEADER_T
tHead;
TCPIP_DATA_TCP_CMD_CONNECT_CNF_T tData;
} TCPIP_PACKET_TCP_CMD_CONNECT_CNF_T;
TCP/IP | Packet Interface
DOC050201API13EN | Revision 13 | English | 2015-09 | Released | Public
© Hilscher, 2005-2015