add basic web protocol

This commit is contained in:
SikongJueluo 2025-03-29 20:24:15 +08:00
parent 351aad8300
commit f455af3589
No known key found for this signature in database
4 changed files with 72 additions and 5 deletions

View File

@ -8,6 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.OpenApi" Version="1.6.23" /> <PackageReference Include="Microsoft.OpenApi" Version="1.6.23" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.0.0" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="8.0.0" />
</ItemGroup> </ItemGroup>

View File

@ -6,9 +6,29 @@ class UDPClientPool
{ {
private static IPAddress localhost = IPAddress.Parse("127.0.0.1"); private static IPAddress localhost = IPAddress.Parse("127.0.0.1");
public UDPClientPool() public static void SendString(IPEndPoint endPoint, string[] stringArray)
{ {
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
byte[] sendbuf = Encoding.ASCII.GetBytes(stringArray[0]);
socket.SendTo(sendbuf, endPoint);
}
public async static void AsyncSendString(IPEndPoint endPoint, string[] stringArray)
{
await Task.Run(() => { SendString(endPoint, stringArray); });
}
public static void SendBytes(IPEndPoint endPoint, byte[] buf)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socket.SendTo(buf, endPoint);
}
public async static void AsyncSendBytes(IPEndPoint endPoint, byte[] buf)
{
await Task.Run(() => { SendBytes(endPoint, buf); });
} }
public static void SendLocalHost(int port, string[] stringArray) public static void SendLocalHost(int port, string[] stringArray)
@ -34,8 +54,4 @@ class UDPClientPool
Thread.Sleep(sleepMilliSeconds); Thread.Sleep(sleepMilliSeconds);
} }
} }
public void Start()
{
}
} }

50
server/src/WebProtocol.cs Normal file
View File

@ -0,0 +1,50 @@
namespace WebProtocol
{
public enum PackSign
{
SendAddr = 0x00,
SendData = 0xFF,
RecvData = 0x0F,
RecvResp = 0xF0,
}
public enum BurstType
{
ExtendBurst = 0b00,
FixedBurst = 0b01,
}
public struct SendAddrPackage
{
readonly byte Sign = (byte)PackSign.SendAddr;
readonly byte commandType;
readonly byte burstLength;
readonly byte _reserved;
readonly UInt32 address;
public SendAddrPackage(BurstType burstType, byte commandID, bool isWrite)
{
commandType = (
((byte)burstType << 5) |
((commandID & (byte)0x03) << 3) |
(isWrite ? (byte)0x01 : (byte)0x00)
);
}
public void toBytes()
{
}
}
public struct RecvRackage
{
public void toBytes()
{
}
}
}