blob: 449cf0ce522a0df94120f8e62de7d4508a18d216 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
using System;
using Hik.Communication.Scs.Communication.EndPoints.Tcp;
using Hik.Communication.Scs.Communication.Messages;
using Hik.Communication.Scs.Server;
/* This program is build to demonstrate a server application that listens incoming
* client connections and reply messages.
*/
namespace ServerApp
{
class Program
{
static void Main()
{
//Create a server that listens 10085 TCP port for incoming connections
var server = ScsServerFactory.CreateServer(new ScsTcpEndPoint(10085));
//Register events of the server to be informed about clients
server.ClientConnected += Server_ClientConnected;
server.ClientDisconnected += Server_ClientDisconnected;
server.Start(); //Start the server
Console.WriteLine("Server is started successfully. Press enter to stop...");
Console.ReadLine(); //Wait user to press enter
server.Stop(); //Stop the server
}
static void Server_ClientConnected(object sender, ServerClientEventArgs e)
{
Console.WriteLine("A new client is connected. Client Id = " + e.Client.ClientId);
//Register to MessageReceived event to receive messages from new client
e.Client.MessageReceived += Client_MessageReceived;
}
static void Server_ClientDisconnected(object sender, ServerClientEventArgs e)
{
Console.WriteLine("A client is disconnected! Client Id = " + e.Client.ClientId);
}
static void Client_MessageReceived(object sender, MessageEventArgs e)
{
var message = e.Message as ScsTextMessage; //Server only accepts text messages
if (message == null)
{
return;
}
//Get a reference to the client
var client = (IScsServerClient)sender;
Console.WriteLine("Client sent a message: " + message.Text +
" (Cliend Id = " + client.ClientId + ")");
//Send reply message to the client
client.SendMessage(
new ScsTextMessage(
"Hello client. I got your message (" + message.Text + ")",
message.MessageId //Set first message's id as replied message id
));
}
}
}
|