111,125
社区成员
发帖
与我相关
我的任务
分享
using System.Net;
using System.Net.Sockets;
namespace BACnetClient
{
public partial class Form1 : Form
{
Socket bacnet_master_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("219.142.59.82"), 5022);//目标端口
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
IPEndPoint local_ipep = new IPEndPoint(IPAddress.Parse("192.168.0.24"), 5022);// 绑定端口,192.168.0.24为本地IP
bacnet_master_socket.Bind(local_ipep);
bacnet_master_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
}
private void btn_Device_FirmwareRevision_Click(object sender, EventArgs e)
{
/***************发送*********************************/
byte[] data = new byte[1024];
data[0] = Convert.ToByte('L');
data[1] = Convert.ToByte('R');
data[2] = Convert.ToByte('|');
data[3] = Convert.ToByte('R');
data[4] = Convert.ToByte('I');
data[5] = Convert.ToByte('G');
data[6] = Convert.ToByte('I');
data[7] = Convert.ToByte('|');
data[8] = Convert.ToByte('F');
data[9] = Convert.ToByte('L');
data[10] = Convert.ToByte('R');
data[11] = Convert.ToByte('N');
data[12] = Convert.ToByte('G');
data[13] = Convert.ToByte('#');
data[14] = Convert.ToByte('G');
data[15] = Convert.ToByte('N');
data[16] = Convert.ToByte('G');
data[17] = Convert.ToByte('L');
data[18] = Convert.ToByte('G');
data[19] = Convert.ToByte('V');
data[20] = Convert.ToByte('G');
data[21] = Convert.ToByte('G');
data[22] = Convert.ToByte('G');
data[23] = Convert.ToByte('S');
data[24] = Convert.ToByte('S');
data[25] = Convert.ToByte('F');
data[26] = Convert.ToByte('|');
try
{
bacnet_master_socket.SendTo(data, (int)27, SocketFlags.None, ipep);
}
catch (SocketException)
{
System.Windows.Forms.MessageBox.Show("Either the network cable is unplugged, or there is no configured Ethernet Port on this computer");
return;
}
/********************************接收***************************************/
byte[] received = new byte[1024];
//int recv = bacnet_master_socket.ReceiveFrom(received, ref tmpRemote);
int recv = bacnet_master_socket.Receive(received);
/********************************************接收******************************************/
string result = "";//设置断点
System.Windows.Forms.MessageBox.Show(result);
}
}
}
try
{
//在发送之前首先要连接的!
bacnet_master_socket.Connect(ipep);
if(bacnet_master_socket.Connected)
bacnet_master_socket.SendTo(data, (int)27, SocketFlags.None, ipep);
}
public string sPing(string IP)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1200;
PingReply reply = pingSender.Send(IP, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
string sPing;
sPing = "网络正常";
return sPing;
}
else
{
return "网络不通";
}
}