コード例 #1
0
ファイル: Program.cs プロジェクト: C41-233/FFF
        void IApplication.OnInit(string[] args)
        {
            server = FNet.CreateTcpServer(new TcpServerConfig()
            {
                KeepAlive       = 5000,
                SendImmediately = true,
            });

            server.OnClientConnected += conn =>
            {
                Console.WriteLine($"connected: {conn.ConnectionId} {conn.IP}:{conn.Port}");
                client++;
            };
            server.OnClientDisconnected += (conn, type) =>
            {
                Console.WriteLine($"disconnected: {conn.ConnectionId} {type}");
            };
            server.OnClientReceive += (conn, data) =>
            {
                var msg = Encoding.UTF8.GetString(data);
                Console.WriteLine($"receive: {conn.ConnectionId} {msg}");

                var send = Encoding.UTF8.GetBytes("pong");
                conn.Send(send);
            };
            server.OnServerClosed += server =>
            {
                Console.WriteLine("Server closed.");
            };
            server.BeginAccept();
        }
コード例 #2
0
        public static void Main(string[] args)
        {
            var server = FNet.CreateTCPServer(new TcpServerConfig()
            {
                IpAsString     = "127.0.0.1",
                Port           = 13000,
                MaxConnection  = 5,
                PackageMaxSize = 1024,
            });

            server.OnClientConnected += conn =>
            {
                handshakes.Add(conn.ConnectionId, new ConnectionInfo()
                {
                    Connection  = conn,
                    ConnectTime = FDateTime.Now.TimeStamp,
                });
            };
            server.OnClientReceive += (conn, data) =>
            {
                if (handshakes.ContainsKey(conn.ConnectionId))
                {
                    var msg = Encoding.UTF8.GetString(data);

                    var regex   = new Regex(@"^handshake (a-zA-Z)+$");
                    var matches = regex.Matches(msg);
                    if (matches.Count != 1)
                    {
                        conn.Close();
                        return;
                    }
                    var groups = matches[0].Groups;
                    if (groups.Count != 1)
                    {
                        conn.Close();
                        return;
                    }

                    var name = groups[0];
                }
            };

            while (true)
            {
                server.Update();
                var now = FDateTime.Now.TimeStamp;

                foreach (var conn in handshakes.Values.ToList())
                {
                }

                Thread.Sleep(100);
            }
        }