Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /SocketX/BcastSocket.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16 - (hide annotations) (download) (as text)
Mon Jun 28 05:40:57 2010 UTC (13 years, 9 months ago) by sho1get
File MIME type: text/x-c++src
File size: 1600 byte(s)
Update_20100628
1 sho1get 11 #pragma once
2    
3     #include "stdafx.h"
4     #include "SocketX.h"
5    
6     //////////////////////////////////////////////////////////////////////////
7    
8     IMPLEMENT_DYNAMIC(CBcastSocket, CBcastSocket)
9    
10     CBcastSocket::CBcastSocket() :
11     m_fBcast(FALSE)
12     {
13     ZeroMemory(&m_BcastAddr, sizeof(m_BcastAddr));
14     }
15    
16     CBcastSocket::~CBcastSocket()
17     {
18     }
19    
20     BOOL CBcastSocket::SetBroadcast(DWORD dwLocalAddress, DWORD dwMaskAddress, WORD wPort)
21     {
22     return SetBroadcast(((dwLocalAddress & dwMaskAddress) | (~dwMaskAddress)), wPort);
23     }
24    
25     BOOL CBcastSocket::SetBroadcast(DWORD dwBcastAddress, WORD wPort)
26     {
27 sho1get 16 SOCKADDR_IN sAddrIn;
28 sho1get 11 BOOL flag = TRUE;
29    
30     if (!SetSockOpt(SO_BROADCAST, (LPSTR)&flag, sizeof(flag)))
31     {
32     return FALSE;
33     }
34    
35 sho1get 16 sAddrIn.sin_family = AF_INET;
36     sAddrIn.sin_port = htons(wPort);
37     sAddrIn.sin_addr.s_addr = dwBcastAddress;
38 sho1get 11
39 sho1get 16 CopyMemory(&m_BcastAddr, &sAddrIn, sizeof(m_BcastAddr));
40 sho1get 11 m_fBcast = TRUE;
41    
42     return TRUE;
43     }
44    
45     BOOL CBcastSocket::ResetBroadcast()
46     {
47     BOOL flag = FALSE;
48    
49     if (!SetSockOpt(SO_BROADCAST, (LPSTR)&flag, sizeof(flag)))
50     {
51     return FALSE;
52     }
53    
54     ZeroMemory(&m_BcastAddr, sizeof(m_BcastAddr));
55     m_fBcast = FALSE;
56    
57     return TRUE;
58     }
59    
60     BOOL CBcastSocket::Broadcast(const CByteArray &data)
61     {
62     if (!m_fBcast)
63     {
64     TRACE("***** ERROR: Broadcast(Socket isn't Broadcast socket) *****\n");
65     return FALSE;
66     }
67    
68     if (!SendTo(data, &m_BcastAddr, sizeof(m_BcastAddr)))
69     {
70     TRACE1("***** ERROR: Broadcast(%d) *****\n", GetLastError());
71     return FALSE;
72     }
73    
74     return TRUE;
75     }
76    
77    
78     //////////////////////////////////////////////////////////////////////////

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26