hi
The following code snippet when i run under win2k advanced server, is giving error in send function...can anybody help me out as whats going wrong ??

#include <winsock.h>
#include <iostream.h>

void main()
{
WSADATA ws;
SOCKET s1,TempSock;
sockaddr_in SOCKADDR_IN;
WORD wVersionRequested;

char buffer[1024];
int size = 0;
int retVal = 0;

TempSock = SOCKET_ERROR;
wVersionRequested = MAKEWORD( 2, 2 );

cout<<"Server starting ..........\n";

retVal = WSAStartup(wVersionRequested,&ws);
if ( retVal != 0 )
{
cout<<"WSAStartup failed.....exiting....................\n";
exit(0);
}
else
{
cout<<"WSAStartup successful...............................\n";
}

s1=socket(PF_INET, SOCK_STREAM,0); /* SOCK_DGRAM for UDP protocol */
/* SOCK_STREAM for TCP/IP protocol */

if (s1 == INVALID_SOCKET)
{
cout<<"Socket creation failed..........................\n";
}
else
{
cout<<"Socket created successfully...............................\n";
}

SOCKADDR_IN.sin_family = AF_INET;
SOCKADDR_IN.sin_port = 50;
//SOCKADDR_IN.sin_addr.s_addr =INADDR_ANY; /* if we want to listen on multiple addresses */
SOCKADDR_IN.sin_addr.S_un.S_un_b.s_b1 = 127;
SOCKADDR_IN.sin_addr.S_un.S_un_b.s_b2 = 0;
SOCKADDR_IN.sin_addr.S_un.S_un_b.s_b3 = 0;
SOCKADDR_IN.sin_addr.S_un.S_un_b.s_b4 = 1;

retVal = bind(s1,(sockaddr *) (&SOCKADDR_IN),sizeof(SOCKADDR_IN));
if ( retVal == SOCKET_ERROR )
{
cout<<"Attempt to Bind failed.....exiting....................\n";
exit(0);
}
else
{
cout<<"Bind successful...............................\n";
}

// Start Listening.
listen(s1,1);
cout<<"Server fully UP.....Listening on port................\n.";

retVal = send(s1,"Hello",5,0);

if ( retVal != 0 )
{
cout<<"send failed.....exiting....................\n" ;
cout<<"Error : "<<WSAGetLastError()<<"\n";
exit(0);
}
else
{
cout<<"send successful...............................\n";
}

//Accept the connection from client
while (TempSock == SOCKET_ERROR)
{
TempSock = accept(s1, NULL, NULL);
}
s1 = TempSock;

}