发送数据出去了,但是没有收到数据,暂时先不考虑我发送的格式是否正确,只是请大家帮忙看下除了发送数据部分,其他部分写的是否正确(关键是本地绑定的IP和端口和目标地址和端口这样写有没有冲突),代码如下—>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);
}
}
}
希望高手指点,万分感激!!!!!
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);
}
}
}
希望高手指点,万分感激!!!!!
解决方案 »
- 关于一个简单的事件
- 如何把解析的XML数据 绑定到页面上啊
- 我的VS2005输入时提示的都是英文怎么办?
- c# 中访问html控件
- 如何利用vs2005 Team版进行团队开发?
- 急!控制Excel一个很头痛的问题!!!
- 请高手帮忙指点一下(如何在窗体最小化时,在日期/时间栏旁边显示!以及如何来判断本地的电脑是否与Internet网络连接!)
- 我做的windows服务运行正常,但是在“服务管理器”中打开它时出现“配置管理器:出现了一般内部错误”的提示,请高手指点
- 我如何判断一个窗口是否打开,如打开了就激活,类似于QQ
- WinNT每次遇上错误,IIS服务就会自动停止。请问如何设置它不会自动停止?
- 超郁闷、、急急急、、、
- 如何把一个数组的指定开始位到指定结束位复制到一个新的数组?
{
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 "网络不通";
}
}
try
{
//在发送之前首先要连接的!
bacnet_master_socket.Connect(ipep);
if(bacnet_master_socket.Connected)
bacnet_master_socket.SendTo(data, (int)27, SocketFlags.None, ipep);
}
socket.Receive(buffer);
处理客户端的请求并回应客户端
string message = "";
byte[] outbytes = System.Text.Encoding.ASCII.GetBytes(message.ToCharArray());
socket.Send(outbytes, message.Length, 0); SOCKET通讯总结