Skip to content

Instantly share code, notes, and snippets.

@PreyK
Created August 5, 2019 16:22
Show Gist options
  • Save PreyK/9bdf9bbd3e6336d9baaf0f4db703118e to your computer and use it in GitHub Desktop.
Save PreyK/9bdf9bbd3e6336d9baaf0f4db703118e to your computer and use it in GitHub Desktop.
server_sample.cs
void Start()
{
server = new TcpServer();
server.Port = port;
server.VerifyConnectionInterval = 1;
server.Open();
server.OnDataAvailable += Server_OnDataAvailable;
server.OnConnect += Server_OnConnect;
}
private void Server_OnConnect(TcpServerConnection connection)
{
Console.WriteLine("CONNECTED");
this.Invoke(new Action(() => stateLabel.Text = "STATE: CLIENT CONNECTED"));
}
private void Server_OnDataAvailable(TcpServerConnection connection)
{
byte[] data = readStream(connection);
if (data != null)
{
HandleMessage(data, connection);
data = null;
}
}
private void HandleMessage(byte[] data, TcpServerConnection connection)
{
string datas = Encoding.ASCII.GetString(data);
Console.WriteLine(datas);
if (datas == "start" && AutoStartCap.Checked)
{
startFrameTimer();
}
}
protected byte[] readStream(TcpServerConnection connection)
{
var socket = connection.Socket;
NetworkStream stream = socket.GetStream();
if (stream.DataAvailable)
{
byte[] data = new byte[socket.Available];
int bytesRead = 0;
try
{
bytesRead = stream.Read(data, 0, data.Length);
}
catch (IOException)
{
}
if (bytesRead < data.Length)
{
byte[] lastData = data;
data = new byte[bytesRead];
Array.ConstrainedCopy(lastData, 0, data, 0, bytesRead);
}
return data;
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment