Message-ID: <3A69FEFF.7020104@operamail.com> From: Sahab Yazdani Organization: PheonixSoft Interactive User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20010107 X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: libsocket over the net... Content-Type: multipart/mixed; boundary="------------090007030306020405000808" Lines: 364 Date: Sat, 20 Jan 2001 16:11:27 -0500 NNTP-Posting-Host: 149.99.117.26 X-Complaints-To: abuse AT sprint DOT ca X-Trace: newscontent-01.sprint.ca 980025367 149.99.117.26 (Sat, 20 Jan 2001 16:16:07 EST) NNTP-Posting-Date: Sat, 20 Jan 2001 16:16:07 EST To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com This is a multi-part message in MIME format. --------------090007030306020405000808 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit hello again, i am attempting to test my application (which uses libsocket) for over the net usage. It doesn't work. It accepts the connection from the client, but then whatever packets I send get garbled up (do I have to make everything in packet structures network edian??) I am completely lost and dont have a clue what to do.. I have included the source code for the actual transmission and receive of packets with this message in the hope that somebody on this newsgroup might be able to help me out... -- *********************************************************** * Sahab Yazdani * "Wizard's Third Rule: Passion rules * * Thornhill S.S * Reason." - Kolo's Journal * *********************************************************** * http://pheonixsoft.virtualave.net/ * *********************************************************** --------------090007030306020405000808 Content-Type: text/plain; name="packet.cc" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="packet.cc" // Tank Massacre V2.1 // Module: Network Code Helper (Packet Sender/Receiver) // By: Sahab Yazdani #include #include #include #include #include #include "packet.h" //#define DEBUG MassacreHeader CreateHeader( unsigned char packetType, unsigned char multiples ) { MassacreHeader retType; strcpy(retType.header, "MASS.NET\0" ); retType.packetType = packetType; retType.multiples = multiples; return retType; } MassacreBriefingRoomPacket CreateBriefingRoomPacket( char update, unsigned char player, unsigned char type, char name[] ) { MassacreBriefingRoomPacket retType; retType.update = update; retType.player = player; retType.type = type; strcpy( retType.name, name ); return retType; } MassacreChatPacket CreateChatPacket( char message[] ) { MassacreChatPacket retType; strcpy( retType.message, message ); return retType; } bool SendHeader( int sock, unsigned char packetType, unsigned char multiples = 1 ) { MassacreHeader header; strcpy( header.header, "MASS.NET\0" ); header.packetType = packetType; header.multiples = multiples; if ( send( sock, (void *) &header, sizeof( MassacreHeader ), 0 )!=sizeof( MassacreHeader ) ) return false; else return true; } MassacreHeader ReceiveHeader( int sock ) { unsigned char *tempBuffer = new unsigned char[sizeof( MassacreHeader )]; MassacreHeader header; int len=0, len1=0, smH; bool err=false; smH = sizeof( MassacreHeader ); while ( len = recv( sock, ( void * ) tempBuffer, smH, MSG_WAITALL ) ) { if ( len == - 1 ) { err = true; break; } while ( len < smH ) { printf( "len: %i, smH: %i, neccessary: %i\n", len, smH, smH - len ); len1 = recv( sock, ( void * ) &tempBuffer[len], smH - len, 0 ); if ( len1 == -1 ) { lsck_perror("ERROR"); err=true; break; } len += len1; } } memcpy( (void *) &header, (void *) tempBuffer, smH ); if (!err) { printf( "HEADER: %s PACKETTYPE: %i MULTIPLES: %i\n", header.header, header.packetType, header.multiples ); if ( strstr( header.header, "MASS.NET" )==NULL ) header.packetType = PACKETSTYLE_ERROR; } else { header.packetType=PACKETSTYLE_ERROR; header.multiples = errno; } delete tempBuffer; return header; } int BroadcastHeader( int socks[], int sockets, int retSocket, MassacreHeader mH ) { int sC; int retVal=0; for ( sC=0;sC