Develop and Download Open Source Software

Browse Subversion Repository

Contents of /SocketX/BcastSocket.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16 - (show annotations) (download) (as text)
Mon Jun 28 05:40:57 2010 UTC (13 years, 11 months ago) by sho1get
File MIME type: text/x-c++src
File size: 1600 byte(s)
Update_20100628
1 #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 SOCKADDR_IN sAddrIn;
28 BOOL flag = TRUE;
29
30 if (!SetSockOpt(SO_BROADCAST, (LPSTR)&flag, sizeof(flag)))
31 {
32 return FALSE;
33 }
34
35 sAddrIn.sin_family = AF_INET;
36 sAddrIn.sin_port = htons(wPort);
37 sAddrIn.sin_addr.s_addr = dwBcastAddress;
38
39 CopyMemory(&m_BcastAddr, &sAddrIn, sizeof(m_BcastAddr));
40 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