Broadcast.cpp ( File view )

  • By nwpurain 2014-10-21
  • View(s):717
  • Download(s):20
  • Point(s): 3
			// Broadcast.cpp : implementation file
//

#include "stdafx.h"
#include "NetAssist.h"
#include "Broadcast.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBroadcast dialog
UINT OnReceive1(LPVOID lParam);

UINT OnReceive1(LPVOID lParam)
{

	CBroadcast *pDlg = (CBroadcast*)lParam;
	char szData[1024];
	int len = sizeof(sockaddr);
	while(pDlg!=NULL)
	{

		recvfrom(pDlg->LocalSock,szData,1024,0,(sockaddr*)&pDlg->DestAddr,&len);
		CString str(szData);
		pDlg->m_broReceive.AddString(str);
	
}
	
	return 0;

}





CBroadcast::CBroadcast(CWnd* pParent /*=NULL*/)
	: CDialog(CBroadcast::IDD, pParent)
{

	//{
{
AFX_DATA_INIT(CBroadcast)
	m_edit_message = _T("");
	//
}
}AFX_DATA_INIT

}


void CBroadcast::DoDataExchange(CDataExchange* pDX)
{

	CDialog::DoDataExchange(pDX);
	//{
{
AFX_DATA_MAP(CBroadcast)
	DDX_Control(pDX, IDC_Broadcast_LIST2, m_broReceive);
	DDX_Text(pDX, IDC_Broadcast_EDIT8, m_edit_message);
	//
}
}AFX_DATA_MAP

}


BEGIN_MESSAGE_MAP(CBroadcast, CDialog)
	//{
{
AFX_MSG_MAP(CBroadcast)
	ON_BN_CLICKED(IDC_BroadcastSend, On_Broadcast_Send)
	ON_BN_CLICKED(IDC_BroadcastStart, OnBroadcastStart)
	//
}
}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBroadcast message handlers
BOOL CBroadcast::OnInitDialog()
{

	CDialog::OnInitDialog();
	GetDlgItem(IDC_BroadcastClear)->EnableWindow(false);
	GetDlgItem(IDC_BroadcastSend)->EnableWindow(false);
	// TODO:  在此添加额外的初始化
	WSADATA wsd;
	if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
	{

		AfxMessageBox(_T("版本检测失败!"),0,0);
		WSACleanup();
		return false;
	
}
	
	LocalSock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
	if(INVALID_SOCKET == LocalSock)
	{

		AfxMessageBox(_T("套接字建立失败!"),0,0);
		closesocket(LocalSock);
		return false;
	
}
	char szName[20];
	gethostname(szName,20);
	hostent *pHost = gethostbyname(szName);
	
	in_addr addr;
	memcpy(&addr,pHost->h_addr_list[0],pHost->h_length);
	
	CString str(inet_ntoa(addr));
	SetDlgItemText(IDC_Broadcast_EDIT5,str);
	SetDlgItemText(IDC_Broadcast_EDIT7,_T("6000"));
	GetDlgItem(IDC_Broadcast_EDIT5)->EnableWindow(false);
	GetDlgItem(IDC_Broadcast_EDIT7)->EnableWindow(false);
	GetDlgItem(IDC_Broadcast_EDIT8)->EnableWindow(false);
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE

}

void CBroadcast::On_Broadcast_Send() 
{

	// TODO: Add your control notification handler code here
	SOCKET sock;
	SOCKADDR_IN send,to;
	BOOL optval=TRUE;
	UpdateData(true);
	char data[80];
	UpdateData(TRUE);
	//	data[0]='d';
	//	data[1]='\0';
	strcpy(data,m_edit_message);
	if(m_edit_message.GetLength()==0)
	{

		AfxMessageBox("消息长度不可以为0!");
		return;
	
}
	
	sock=socket(AF_INET,SOCK_DGRAM,0);
	
	if(sock==SOCKET_ERROR)
	{

		AfxMessageBox("Sock create fail!");
		return;
	
}
	
	send.sin_family=AF_INET;
	send.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
	send.sin_port=htons(2008);
	
	if(bind(sock,(struct sockaddr *)&send,sizeof(send))!=0)
	{

		AfxMessageBox("绑定失败");
		closesocket(sock);
		//	return(-1);
		
	
}
	
	
	
	if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char *)&optval,sizeof(optval))==SOCKET_ERROR)
	{

		MessageBox("套接字设置失败");
		closesocket(sock);
		//	WSACleanup();
		//		return(-1);
	
}
	
	int length;
	to.sin_family=AF_INET;
	to.si
...
...
(Please download the complete source code to view)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 3

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
AcceptSocket.cpp899.00 B14-04-12|15:31
AcceptSocket.h1.24 kB15-06-14|22:31
Broadcast.cpp5.17 kB16-06-14|22:24
Broadcast.h1.45 kB16-06-14|22:24
ConnectSocket.cpp871.00 B14-04-12|15:26
ConnectSocket.h1.31 kB15-06-14|22:31
AcceptSocket.obj5.96 kB16-06-14|21:40
Broadcast.obj23.60 kB16-06-14|22:24
ConnectSocket.obj6.00 kB16-06-14|21:40
ListenSocket.obj7.41 kB16-06-14|21:40
Multicast.obj35.04 kB16-06-14|21:40
MulticastSocket.obj20.98 kB16-06-14|21:40
NetAssist.exe2.11 MB16-06-14|23:06
NetAssist.ilk2.48 MB16-06-14|23:06
NetAssist.obj12.44 kB16-06-14|22:29
NetAssist.pch5.27 MB16-06-14|21:40
NetAssist.pdb4.05 MB16-06-14|23:06
NetAssist.res10.88 kB16-06-14|22:29
NetAssistDlg.obj30.00 kB16-06-14|22:29
StdAfx.obj103.86 kB16-06-14|21:40
TCP.obj25.63 kB16-06-14|22:57
Unicast.obj22.99 kB16-06-14|23:06
vc60.idb233.00 kB15-10-14|23:04
vc60.pdb364.00 kB16-06-14|23:06
复件0.00 B17%|16-06-14
ListenSocket.cpp1.13 kB14-04-12|15:31
ListenSocket.h1.27 kB15-06-14|22:31
Multicast.cpp7.64 kB16-06-14|00:07
Multicast.h1.96 kB16-06-14|00:09
MulticastSocket.cpp6.81 kB16-06-14|00:00
MulticastSocket.h2.33 kB10-06-14|19:54
NetAssist.aps40.26 kB16-06-14|22:29
NetAssist.clw4.55 kB15-10-14|23:19
NetAssist.cpp2.15 kB15-06-14|22:26
NetAssist.dsp4.91 kB16-06-14|21:12
NetAssist.dsw541.00 B15-06-14|22:26
NetAssist.h1.33 kB15-06-14|22:26
NetAssist.ncb113.00 kB16-10-14|00:11
NetAssist.opt58.50 kB16-10-14|00:11
NetAssist.plg869.00 B16-06-14|23:06
NetAssist.rc10.41 kB16-06-14|22:29
NetAssistDlg.cpp5.98 kB16-06-14|22:29
NetAssistDlg.h1.63 kB16-06-14|22:29
ReadMe.txt3.55 kB15-06-14|22:26
NetAssist.ico1.05 kB15-06-14|22:26
NetAssist.rc2401.00 B15-06-14|22:26
resource.h3.09 kB16-06-14|22:29
StdAfx.cpp211.00 B15-06-14|22:26
StdAfx.h1.08 kB15-06-14|22:26
TCP.cpp5.92 kB16-06-14|21:09
TCP.h1.54 kB15-06-14|23:32
Unicast.cpp5.00 kB16-06-14|23:06
Unicast.h1.49 kB16-06-14|21:01
Debug0.00 B16-06-14|23:06
res0.00 B15-06-14|22:26
NetAssist06160.00 B16-10-14|00:11
...
Sponsored links

Broadcast.cpp (3.87 MB)

Need 3 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D