Than you Richard.J


please check this code, in this code if i did't use bind() it is giving error 10022, otherwise my program getting struck at recvfrom() function.

Please tell me what might be the problem


code

/**************************/
#include <stdio.h>
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
void main() {

WSADATA wsaData;
SOCKET RecvSocket;
sockaddr_in RecvAddr;
int Port = 6791;
char RecvBuf[1024];
int BufLen = 1024;
sockaddr_in SenderAddr;
int SenderAddrSize = sizeof(SenderAddr);

// Initialize Winsock
WSAStartup(MAKEWORD(2,2), &wsaData);

// Create a receiver socket to receive datagrams
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

// Bind the socket to any address and the specified port.
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Port);
RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);

bind(RecvSocket, (SOCKADDR *) &RecvAddr, sizeof(RecvAddr));

// Call the recvfrom function to receive datagrams
// on the bound socket.
printf("Receiving datagrams...\n");
if(recvfrom(RecvSocket,RecvBuf,BufLen,0,(SOCKADDR *)&SenderAddr,&SenderAddrSize)!= SOCKET_ERROR) {
printf("RecvData ==>%s",RecvBuf) ;
}
else{
fprintf(stderr,"Client: recvfrom() failed: error %d.\n", WSAGetLastError());
closesocket(RecvSocket);
WSACleanup();
exit(1) ;
}
// Close the socket when finished receiving datagrams
printf("Finished receiving. Closing socket.\n");
closesocket(RecvSocket);
// Clean up and exit.
printf("Exiting.\n");
WSACleanup();
return;
}


Please help me