Quote Originally Posted by beginner91 View Post
final code:
Code:
void CSocketTestServerDlg::StartServer()
{
	//---------------------------------------
    // Declare variables
	int iResult = 0;
	WSADATA wsaData;
	iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);

	BOOL bOptVal = FALSE;
    int bOptLen = sizeof (BOOL);

    int iOptVal = 0;
    int iOptLen = sizeof (int);
	

	SOCKADDR_IN brdcastaddr;
    int portno = 1818;

	memset(&brdcastaddr,0, sizeof(brdcastaddr));
    brdcastaddr.sin_family = AF_INET;
    brdcastaddr.sin_port = htons(portno);
    brdcastaddr.sin_addr.s_addr = INADDR_BROADCAST;

	//---------------------------------------
    // Create a listening socket
	m_serversocket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); 
    if(m_serversocket == -1)
    {
        AfxMessageBox("Socket Initialiation Error");
    }

	int len = sizeof(brdcastaddr);
    char sbuf[1024];
	int BufLen = 1024;

    int ret = sendto(m_serversocket, sbuf, strlen(sbuf), 0, (sockaddr*)&brdcastaddr, len);
    if(ret < 0)
    {
		CString text;
		text.Format(_T("ERROR binding in the server socket: %d"), WSAGetLastError());
		AfxMessageBox(text);
        exit(1);
    }

    if(listen(m_serversocket,0) < 0)
    {
         AfxMessageBox("ERROR listening in the server socket");
         exit(1);
    }	


	 bOptVal = TRUE;

    iResult = getsockopt(m_serversocket, SOL_SOCKET, SO_KEEPALIVE, (char *) &iOptVal, &iOptLen);
    if (iResult == SOCKET_ERROR) 
	{
		CString text;
		text.Format(_T("getsockopt for SO_KEEPALIVE failed with error: %d"), WSAGetLastError());
		AfxMessageBox(text);
    }
	else
	{
		CString text;
		text.Format(_T("SO_KEEPALIVE Value: %ld\n"), iOptVal);
		AfxMessageBox(text);
	}

    iResult = setsockopt(m_serversocket, SOL_SOCKET, SO_BROADCAST, (char *) &bOptVal, bOptLen);
    if (iResult == SOCKET_ERROR) 
	{
		CString text;
		text.Format(_T("setsockopt for SO_KEEPALIVE failed with error: %d"), WSAGetLastError());
		AfxMessageBox(text);
    }
	else
	{
		AfxMessageBox("ERROR binding in the server socket");
	}

    iResult = getsockopt(m_serversocket, SOL_SOCKET, SO_KEEPALIVE, (char *) &iOptVal, &iOptLen);
    if (iResult == SOCKET_ERROR)
	{
		CString text;
		text.Format(_T("getsockopt for SO_KEEPALIVE failed with error: %d"), WSAGetLastError());
		AfxMessageBox(text);
    } 
	else
	{
		CString text;
		text.Format(_T("SO_KEEPALIVE Value: %ld\n"), iOptVal);
		AfxMessageBox(text);
	}

    closesocket(m_serversocket);
    WSACleanup();

	

    SetTimer(0x01, 100, NULL);
}
sorry for the confusion
But the line you have highlighted does NOT execute! Just because your "program" exits about 15...20 lines "ealier"!

Again: reread my post#6 and begin from the basics and learning how to debug!