如何将SimplSockets与委托一起用于"hello world"项目?

goo*_*ate 14 .net sockets networking tcp

我正在研究SimplSockets库来构建使用套接字的应用程序.但是,在查看Stack Overflow上的其他问题,作者的博客,源代码和几个Internet搜索之后,我找不到使用SimplSockets创建"hello world"项目的直接方法.

如何创建使用SimplSockets的"hello world"应用程序?

为了防止"过于宽泛"的关闭,我想要做的就是发送和接收一些数据.一串,无论如何.我打开这个问题的原因是因为我对如何,因为它使用调用构造函数不能确定func<T>哪里T是一个插座.

goo*_*ate 11

我对SimplSockets的问题是我没有正确理解如何使用构造函数中所需的委托.

下面是一个示例客户端/服务器,它回显您输入的数据.我不知道我应该做什么而不是Thread.Sleep(),所以除非有人有更好的建议,否则我会离开那里.

private static void ConnectUsingSimpleSockets()
{
    int maxClients = 50;
    int maxPeers = 10;

    var socketCreator = () => new System.Net.Sockets.Socket(SocketType.Stream, ProtocolType.Tcp);

    using (var client = new SimplSockets.SimplSocket(socketCreator, 5000, 10, true))
    {
        client.MessageReceived += client_MessageReceived;
        client.Error += client_Error;

        var ss = new System.Net.IPEndPoint(BitConverter.ToInt32(IPAddress.Parse("127.0.0.1").GetAddressBytes(), 0), 4747);
        if (client.Connect(ss))
        {
            Console.WriteLine("type something..");
            while (true)
            {
                string resul = Console.ReadLine();

                byte[] data = client.SendReceive(UTF8Encoding.UTF8.GetBytes("Client Send: " + resul + DateTime.Now));

                if (data == UTF8Encoding.UTF8.GetBytes("END"))
                {
                    break;
                }
                Console.WriteLine(UTF8Encoding.UTF8.GetString(data));

            }
        }
        client.Close();


        client.Listen(ss);
        while (true)
        {
            Console.WriteLine("sleeping");
            Thread.Sleep(7000);
        }
        client.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)