Cho mình hỏi chút phần code server trong minichat

1.
Tại sao khi mình để code trong OnInit như thế này thì biên dịch hiện dialog bình thường

Mã:
bind( m_socket, (SOCKADDR*) &service, addlen );
    if ( bind( m_socket, (SOCKADDR*)&service, addlen  ) == SOCKET_ERROR ) {
        m_content.AddString("bind() failed." );
        closesocket(m_socket);
    }
Ngược lại,như thế này lại không hiện dialog chương trình.Mặc dù không báo lỗi

Mã:
    if ( bind( m_socket, (SOCKADDR*)&service, addlen  ) == SOCKET_ERROR ) {
        m_content.AddString("bind() failed." );
        closesocket(m_socket);
    }
2.Tại sao mình khởi tạo winsock,tạo socket mà khi bind fail ?

Mã:
//khoi tao winsock
	WSADATA wsaData;
    int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
    if ( iResult != NO_ERROR )
        MessageBox("Error at WSAStartup()");
	//Tao socket



    m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
	
    if ( m_socket == INVALID_SOCKET ) 
	{

		MessageBox("khong thanh cong");
        WSACleanup();
      
    }
	
    // Bind the socket.Cho biet socket cua server se cho doi ket noi va nhan du lieu tu IP va port bao nhieu
  
	sockaddr_in service;
	
    service.sin_family = AF_INET;
    service.sin_addr.s_addr = inet_addr( "127.0.0.1" );
    service.sin_port = htons( 27015 );//port 27015
	addlen = sizeof(service);

    bind( m_socket, (SOCKADDR*) &service, addlen );
    if ( bind( m_socket, (SOCKADDR*)&service, addlen  ) == SOCKET_ERROR ) {
        m_content.AddString("bind() failed." );
        closesocket(m_socket);
    }
    // Listen on the socket.
	listen( m_socket, 5 );
	
    // Accept connections.
  
     m_content.AddString("Waiting for a client to connect...");
    	
     accept( m_socket,(sockaddr*)&service, &addlen);
    
    m_content.AddString( "Client Connected.");
Tất cả trong OnInit