public void Listen() { IPAddress localAdd = IPAddress.Parse(SERVER_IP); listener = new TcpListener(localAdd, PORT); Console.WriteLine("Listening..."); listener.Start(); while (true) { TcpClient tcpClient = listener.AcceptTcpClient(); // var client = new Client(tcpClient); NetworkStream nwStream = tcpClient.GetStream(); object received = JsonSerializerProvider.DeserializeBinary(nwStream); if (received is Account account) { Console.WriteLine("A new client connected"); Console.WriteLine("Received: {0}#{1}", account.Username, account.PublicId); //connectedClients.RemoveAll(x => x.tcpClient == client.tcpClient); account.tcpClient = tcpClient; AddConnection(account); new Thread(() => ListenToClient(account)).Start(); } } }
public void DeserializeJson() { JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(Drivers.GetType()), ref Drivers); JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(Routes.GetType()), ref Routes); JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(Transports.GetType()), ref Transports); JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(Shifts.GetType()), ref Shifts); JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(DriverShifts.GetType()), ref DriverShifts); JsonSerializerProvider.Deserialize(new DataContractJsonSerializer(TechPassports.GetType()), ref TechPassports); }
public void SerializeJson() { JsonSerializerProvider.Serialize(new DataContractJsonSerializer(Drivers.GetType()), Drivers); JsonSerializerProvider.Serialize(new DataContractJsonSerializer(Routes.GetType()), Routes); JsonSerializerProvider.Serialize(new DataContractJsonSerializer(Transports.GetType()), Transports); JsonSerializerProvider.Serialize(new DataContractJsonSerializer(Shifts.GetType()), Shifts); JsonSerializerProvider.Serialize(new DataContractJsonSerializer(DriverShifts.GetType()), DriverShifts); JsonSerializerProvider.Serialize(new DataContractJsonSerializer(TechPassports.GetType()), TechPassports); }
private void HandleFriendRequest(FriendRequest request) { try { var targetAccount = connectedAccounts.Find(x => x.Username == request.TargetUsername && x.PublicId == request.TargetPublicId); if (targetAccount != null) { request.TargetId = targetAccount.Id; var receiverNwStream = targetAccount.tcpClient.GetStream(); JsonSerializerProvider.SerializeBinary(receiverNwStream, request); Console.WriteLine("Friend Request from {0}#{1} to {2}#{3} | public key: {4}", request.SenderUsername, request.SenderPublicId, request.TargetUsername, request.TargetPublicId, System.Text.Encoding.UTF8.GetString(request.senderPublicKey)); } } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); } }
private void InterpretIncomingMessage(NetworkStream nwStream) { object received = JsonSerializerProvider.DeserializeBinary(nwStream); if (received is Message message) { Console.OutputEncoding = System.Text.Encoding.UTF8; Console.WriteLine("Message from {0} to {1}, {2}: {3}", message.SenderUniqueId, message.ReceiverUniqueId, message.Timestamp, System.Text.Encoding.UTF8.GetString(message.EncryptedMessage)); try { var receiver = connectedAccounts.FirstOrDefault(x => x.Id == message.ReceiverUniqueId); if (receiver != null) { var receiverNwStream = receiver.tcpClient.GetStream(); // Writes serialized binary data into the stream JsonSerializerProvider.SerializeBinary(receiverNwStream, message); } } catch (Exception e) { Console.WriteLine("Exception: " + e.Message); } } else if (received is FriendRequest request) { HandleFriendRequest(request); } else if (received is FriendResponse response) { HandleFriendResponse(response); } else { Console.WriteLine("Received: " + received); } }
public JsonNetFormatter(JsonSerializerProvider serializerProvider) { _serializer = serializerProvider.GetSerializer(); SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); }