This commit is contained in:
snltty
2025-07-15 22:31:08 +08:00
parent 2c91ac92e7
commit 37fe943d63
4 changed files with 20 additions and 7 deletions

View File

@@ -20,7 +20,7 @@ sidebar_position: 5
#### 1、安装linker的设备
1. 如果你无法将linker安装在路由器上那你可以将linker安装到局域网内其它设备都可以连接的其中一台设备上
2. 安装linux的设备可以是`linux``windows`,但是`windows`需要支持`NetNat`<a href="./1.1.1、NetNat">请参照 1.1.1、NetNat</a>
2. 安装linker的设备可以是`linux``windows`,但是`windows`需要支持`NetNat`<a href="./1.1.1、NetNat">请参照 1.1.1、NetNat</a>
#### 2、局域网内其它设备
##### 1、手动添加路由

View File

@@ -302,6 +302,7 @@ namespace linker.messenger.store.file
client.Name,
client.CApi,
client.AccessBits,
client.FullAccess,
Groups = new SignInClientGroupInfo[] { config.Data.Client.Groups[0] },
Servers = new SignInClientServerInfo[] { config.Data.Client.Servers[0] },
client.Updater,

View File

@@ -26,14 +26,19 @@ namespace linker.messenger.store.file
}
public async Task<string> Save(IPEndPoint server, string value)
{
byte[] buffer = ArrayPool<byte>.Shared.Rent(1024);
byte[] buffer = ArrayPool<byte>.Shared.Rent(8 * 1024);
Socket socket = new Socket(server.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try
{
await socket.ConnectAsync(server).WaitAsync(TimeSpan.FromMilliseconds(5000));
await socket.SendAsync(new byte[] { Type });
await socket.SendAsync(serializer.Serialize(new ExportSaveInfo { Type = ExportSaveType.Save, Value = value }.ToJson()));
byte[] playload = serializer.Serialize(new ExportSaveInfo { Type = ExportSaveType.Save, Value = value }.ToJson());
playload.Length.ToBytes().CopyTo(buffer.AsSpan(0, 4));
playload.CopyTo(buffer.AsSpan(4));
await socket.SendAsync(buffer.AsMemory(0, playload.Length + 4));
int length = await socket.ReceiveAsync(buffer.AsMemory(), SocketFlags.None).AsTask().WaitAsync(TimeSpan.FromMilliseconds(5000)).ConfigureAwait(false);
@@ -83,11 +88,18 @@ namespace linker.messenger.store.file
public async Task Resolve(Socket socket, Memory<byte> memory)
{
byte[] buffer = ArrayPool<byte>.Shared.Rent(8192);
byte[] buffer = ArrayPool<byte>.Shared.Rent(8 * 1024);
try
{
int length = await socket.ReceiveAsync(buffer.AsMemory(), SocketFlags.None).ConfigureAwait(false);
ExportSaveInfo info = serializer.Deserialize<string>(buffer.AsMemory(0, length).Span).DeJson<ExportSaveInfo>();
int length = 0, payloadLength = 0;
while (length < payloadLength + 4)
{
length += await socket.ReceiveAsync(buffer.AsMemory(length), SocketFlags.None).ConfigureAwait(false);
if (length >= 4) payloadLength = buffer.ToInt32();
}
ExportSaveInfo info = serializer.Deserialize<string>(buffer.AsMemory(4, length - 4).Span).DeJson<ExportSaveInfo>();
if (string.IsNullOrWhiteSpace(info.Value))
{

View File

@@ -1,5 +1,5 @@
v1.8.7
2025-07-11 13:51:25
2025-07-15 22:31:08
1. 一些累计更新
2. 暗色模式
3. 服务器穿透白名单、匿名连接