![]() |
| | #1 |
| Registered User Join Date: Sep 2007
Posts: 3
| TCP/IP stops blocking... Help pls... Any help on the subject would be most appreciated. thanks |
| Rot_Helmut is offline | |
| | #2 |
| Registered User Join Date: Oct 2001
Posts: 2,110
| os/api etc? example code? |
| robwhit is offline | |
| | #3 |
| Registered User Join Date: Sep 2007
Posts: 3
| my code ////////////////// --- server side ---- //////////////////////// Code:
if( xnet.HasValidConnection() )
{
if( xnet.IsReadAvailable() )
{
xnet.RecieveMsg( buff );
if( xnet.IsWriteAvailable() )
ServerHandleMessage( &xnet );
}
}
////////////////// --- client side ---- ////////////////////////
if( xnet.IsWriteAvailable() )
{
xnet.xmsg->buffer_size = 0;
xnet.SendMsg( GETVIDEOBUFFER, 0 );
}
if( xnet.IsReadAvailable() )
{
xnet.RecieveMsg( xscr.mini_pixel_buffer );
xnet.ClientHandleMsg();
}
/////////////////functions
bool IsReadAvailable()
{
fd_set read_able;
int can_read = 0;
read_able.fd_count = 0;
FD_SET( client_sock, &read_able);
can_read = select( 0, &read_able, 0, 0, 0 );
if( can_read == 1 )
return true;
else
return false;
}
bool IsWriteAvailable()
{
fd_set write_able;
int can_write = 0;
write_able.fd_count = 0;
FD_SET( client_sock, &write_able);
can_write = select( 0, 0, &write_able, 0, 0 );
if( can_write == 1 )
return true;
else
return false;
}
bool SendMsg( UINT xmsg_num, void *buffer )
{
int recieved = 0;
xmsg->xmsg_num = xmsg_num;
xmsg->validity_id = VALID_MSG;
send( client_sock, (char*)xmsg, sizeof( XMSG ), 0 );
do
{
recieved += sendto( client_sock, (char*)buffer + recieved, xmsg->buffer_size - recieved, 0, 0, 0 );
int err = WSAGetLastError();
if( err == WSAENOTCONN )
has_connection = 0;
}
while( recieved < xmsg->buffer_size );
}
bool RecieveMsg( void *buffer )
{
int recieved = 0;
recv( client_sock, (char*)xmsg, sizeof( XMSG ), 0 );
if( xmsg->validity_id != VALID_MSG)
return false;
do
{
recieved += recvfrom( client_sock, (char*)buffer + recieved, xmsg->buffer_size - recieved, 0, 0, 0 );
int err = WSAGetLastError();
if( err == WSAENOTCONN )
has_connection = 0;
}
while( recieved < xmsg->buffer_size );
return true;
}
void ServerHandleMessage()
{
msg->buffer_size = 400 * 320 - 1;
net_class->SendMsg( SENTVIDEOBUFFER, xscr.buffer );
}
void ClientHandleMessage()
{
//dostuff
}
|
| Rot_Helmut is offline | |
| | #4 |
| Registered User Join Date: Sep 2007
Posts: 3
| oops Visual c++ 2005 Windows XP Windsock 2.0 |
| Rot_Helmut is offline | |
| | #5 |
| Registered User Join Date: Oct 2001
Posts: 2,110
| please make it compilable and indent your code. |
| robwhit is offline | |
![]() |
| Thread Tools | |
| Display Modes | |
|
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| How to initialize a non blocking socket using only winsock library | *DEAD* | Networking/Device Communication | 4 | 01-18-2008 07:03 AM |
| Compiler Stops Compiling | tyler4588 | C++ Programming | 8 | 08-02-2003 10:20 PM |
| Basic port scanner code .. pls help ??? | intruder | C Programming | 18 | 03-13-2003 08:47 AM |
| help me pls..... :( | mocha_frap024 | C++ Programming | 2 | 02-22-2002 10:46 AM |
| pls help me!! | hanseler | C++ Programming | 1 | 12-05-2001 08:46 PM |