Compare commits
2 Commits
0b677fd991
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9c957b0309 | |||
| 3e6426c655 |
+2
-2
@@ -1,4 +1,4 @@
|
||||
DotnetSystemd/bin/**
|
||||
DotnetSystemd/obj/**
|
||||
*/bin/**
|
||||
*/obj/**
|
||||
.nuget-packages
|
||||
result
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<RootNamespace>Client</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
|
||||
using var socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
|
||||
await socket.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 9000));
|
||||
|
||||
Console.WriteLine("Type into the console to echo the contents of your message.");
|
||||
|
||||
var ns = new NetworkStream(socket);
|
||||
var readTask = Console.OpenStandardInput().CopyToAsync(ns);
|
||||
var writeTask = ns.CopyToAsync(Console.OpenStandardOutput());
|
||||
|
||||
await Task.WhenAny(readTask, writeTask);
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -1,2 +0,0 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
Console.WriteLine("Hello, World!");
|
||||
@@ -0,0 +1,39 @@
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
|
||||
using var listener = new Socket(SocketType.Stream, ProtocolType.Tcp);
|
||||
listener.Bind(new IPEndPoint(IPAddress.Loopback, 9000));
|
||||
|
||||
Console.WriteLine($"Listening on {listener.LocalEndPoint}");
|
||||
|
||||
listener.Listen();
|
||||
|
||||
while (true)
|
||||
{
|
||||
var connection = await listener.AcceptAsync();
|
||||
|
||||
_ = Task.Run(async () =>
|
||||
{
|
||||
|
||||
var buffer = new byte[4096];
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int read = await connection.ReceiveAsync(buffer, SocketFlags.None);
|
||||
if (read == 0) break;
|
||||
|
||||
var message = System.Text.Encoding.Default.GetString(buffer[..read]);
|
||||
|
||||
Console.WriteLine($"Received new message: {message}");
|
||||
|
||||
await connection.SendAsync(buffer[..read], SocketFlags.None);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
connection.Dispose();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<RootNamespace>dotnet_systemd</RootNamespace>
|
||||
<RootNamespace>Server</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -0,0 +1,5 @@
|
||||
<Solution>
|
||||
<Folder Name="/Server/">
|
||||
<Project Path="Server/Server.csproj" />
|
||||
</Folder>
|
||||
</Solution>
|
||||
@@ -23,11 +23,11 @@
|
||||
in
|
||||
{
|
||||
packages.default = pkgs.buildDotnetModule {
|
||||
pname = "dotnet-systemd";
|
||||
pname = "Server";
|
||||
version = "0.1.0";
|
||||
src = ./DotnetSystemd;
|
||||
src = ./Server;
|
||||
|
||||
nugetDeps = ./DotnetSystemd/deps.json;
|
||||
nugetDeps = ./Server/deps.json;
|
||||
|
||||
dotnet-sdk = pkgs.dotnet-sdk_10;
|
||||
dotnet-runtime = dotnetRuntime;
|
||||
@@ -42,8 +42,8 @@
|
||||
mkdir -p $out/bin
|
||||
cp -r bin/Release/net10.0/* $out/bin/
|
||||
|
||||
makeWrapper ${dotnetRuntime}/bin/dotnet $out/bin/dotnet-systemd \
|
||||
--add-flags "exec $out/bin/dotnet-systemd.dll" \
|
||||
makeWrapper ${dotnetRuntime}/bin/dotnet $out/bin/Server \
|
||||
--add-flags "exec $out/bin/Server.dll" \
|
||||
--prefix LD_LIBRARY_PATH : "${
|
||||
pkgs.lib.makeLibraryPath [
|
||||
pkgs.stdenv.cc.cc.lib
|
||||
|
||||
Reference in New Issue
Block a user