初始化版本

This commit is contained in:
LL
2025-11-14 16:12:32 +08:00
commit ea40f18aa6
326 changed files with 137063 additions and 0 deletions

83
SLC1-N/UDPBroadcast.cs Normal file
View File

@@ -0,0 +1,83 @@
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace SLC1_N
{
class UDPBroadcast
{
//UDP广播获取仪器IP地址
private static Socket sock;
private static IPEndPoint iep1;
private static byte[] data;
Thread UDPlisten;
public string[] ch_ipaddress;
/// <summary>
/// UDP广播获取仪器IP地址
/// </summary>
public void UDP_Broadcast()
{
ch_ipaddress = new string[3];
string PrefixIP = new GetIP().GetLocalIP();
int IP_index = PrefixIP.LastIndexOf(".");
PrefixIP = PrefixIP.Remove(IP_index + 1);
PrefixIP += "255";
sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//255.255.255.255
//iep1 = new IPEndPoint(IPAddress.Broadcast, 9999);
IPAddress ip;
ip = IPAddress.Parse(PrefixIP);
iep1 = new IPEndPoint(ip, 9999);
string hostname = Dns.GetHostName();
data = Encoding.ASCII.GetBytes("hello,udp server");
sock.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.Broadcast, 1);
UDPlisten = new Thread(UDP_Listening);
UDPlisten.Start();
sock.SendTo(data, iep1);
}
public void UDP_Listening()
{
while (true)
{
byte[] data = new byte[1024];
int recv = sock.Receive(data);
string RecvData = Encoding.ASCII.GetString(data, 0, recv);
string[] IPData = RecvData.Split('\n');
int ip_num = IPData.Length;
if (ip_num > 0)
{
int i;
for (i = 0; i < ip_num; i++)
{
string[] ipaddress = IPData[i].Split(':');
int ch_station = Convert.ToInt32(ipaddress[0]);
switch (ch_station)
{
case 1:
ch_ipaddress[0] = ipaddress[1];
break;
case 2:
ch_ipaddress[1] = ipaddress[1];
break;
case 3:
ch_ipaddress[2] = ipaddress[1];
break;
case 4:
ch_ipaddress[3] = ipaddress[1];
break;
}
}
}
}
}
}
}