[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-users] Help on socket problem
From: |
Julian Gardner [RSD] |
Subject: |
[lwip-users] Help on socket problem |
Date: |
Sat, 24 Nov 2007 07:44:40 -0000 |
I am writing a RTSP server and had everything working using UDP (udp_new, udp_send and udp_close) but found i needed to add in TCP as well so changed my loop code but nothing works.
What i need to do at the moment is connect from the server (192.168.1.5 port newPlayState->rtspState.setupServer1) to (192.168.1.3 port newPlayState->rtspState.setupClient1) either in UDP or TCP
snippet of the main transfer loop
int out_socket;
int socket_err;
struct sockaddr_in sockAddr;
struct ip_addr outAddr;
U32 address = 0xc0a80103; // fixed address of client 192.168.1.3
BOOL isTcp = newPlayState->rtspState.setupTransportMode&8;
if( isTcp)
{
out_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP);
}
else
{
out_socket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP);
}
memset( &sockAddr, 0, sizeof( sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons( newPlayState->rtspState.setupServer1);
sockAddr.sin_addr.s_addr = htonl( 0xc0a80105); // fixed address of the server 192.168.1.5
socket_err = bind( out_socket, (struct sockaddr *)&sockAddr, sizeof( sockAddr));
RS232_Verbose( "BIND %d\r\n", socket_err);
memset( &sockAddr, 0, sizeof( sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons( newPlayState->rtspState.setupClient1);
sockAddr.sin_addr.s_addr = htonl( address);
if( isTcp)
{
socket_err = connect( out_socket, (struct sockaddr *)&sockAddr, sizeof( sockAddr));
RS232_Verbose( "CONNECT %d\r\n", socket_err);
}
while( !newPlayState->rtspState.doQuit)
{
S32 bytesRead;
bytesRead = ReadBuffer( fd, sectorBuffer+12, SECTOR_BUFFER_SIZE);
if( bytesRead<0)
{
newPlayState->rtspState.doQuit = TRUE;
break;
}
else if( bytesRead && !newPlayState->rtspState.doPause)
{
U32 t = timerInterrupts;
sectorBuffer[ 0] = 0x80;
sectorBuffer[ 1] = 33;
sectorBuffer[ 2] = newPlayState->rtspState.setupSequence>>8;
sectorBuffer[ 3] = newPlayState->rtspState.setupSequence;
sectorBuffer[ 4] = t>>24;
sectorBuffer[ 5] = t>>16;
sectorBuffer[ 6] = t>>8;
sectorBuffer[ 7] = t;
sectorBuffer[ 8] = ((U32)fd)>>24;
sectorBuffer[ 9] = ((U32)fd)>>16;
sectorBuffer[10] = ((U32)fd)>>8;
sectorBuffer[11] = ((U32)fd);
if( isTcp)
{
send( out_socket, sectorBuffer, bytesRead+12, 0);
}
else
{
sendto( out_socket, sectorBuffer, bytesRead+12, 0, (struct sockaddr *)&sockAddr, sizeof( sockAddr));
}
newPlayState->rtspState.setupSequence++;
}
}
closesocket( out_socket);
What am i doing wrong!!!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-users] Help on socket problem,
Julian Gardner [RSD] <=