我如何将SimplSockets与代表一起用于" hello world"项目?

时间:2014-08-01 19:38:53

标签: .net sockets networking tcp

我正在查看SimplSockets库以构建使用套接字的应用程序。但是,在检查other questions on Stack Overflowthe author’s blogthe source和多次互联网搜索后,我找不到使用SimplSockets创建“hello world”项目的简单方法。

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

为防止“过于宽泛”的关闭,我想要做的就是发送和接收一些数据。一串,无论如何。我打开这个问题的原因是因为我不确定如何调用构造函数,因为它使用func<T> T是套接字。

1 个答案:

答案 0 :(得分: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();
    }
}