Je travaille sur un programme dans lequel je veux déplacer le curseur du PC distant de mon pc mais voici un petit problème de réception des coordonnées de la souris sur pc distant les données reçues par le serveur tcp sur la machine distante retarder ne pas pousser immédiatement sur certains endroits ici est le code et les coordonnées de sortie que j'ai enregistré dans un fichier à la fois pour l'envoi du client et la réception du serveur.Envoyer les coordonnées de la souris sur TCP Problèmes
Code client pour l'envoi de coordonnées.
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (isconnected)
{
try
{
NetworkStream serverStream = clientSocket.GetStream();
this.Cursor = new Cursor(Cursor.Current.Handle);
int pX = Cursor.Position.X;
int pY = Cursor.Position.Y;
byte[] outStream = System.Text.Encoding.ASCII.GetBytes($"{pX}#{pY}");
System.IO.File.AppendAllText(@"F:\DOWNLOAD\client.txt", $"{pX}#{pY}" + Environment.NewLine);
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();
}
catch (Exception ex)
{
}
}
}
Code de serveur pour recevoir les coordonnées
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
try
{
// Translate data bytes to a ASCII string.
// Receive mouse coordinates here
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
string Coordinates = data.ToString();
string X = Coordinates.Substring(0, Coordinates.IndexOf('#'));
string Y = Coordinates.Substring(Coordinates.IndexOf('#') + 1);
coordvalue.Invoke((MethodInvoker)(() => coordvalue.Text = ""));
coordvalue.Invoke((MethodInvoker)(() => coordvalue.Text = $"{X} and {Y}"));
coordvalue.Invoke((MethodInvoker)(() => coordvalue.Update()));
// Change coordinates
System.Windows.Forms.Cursor.Position = new Point(Convert.ToInt32(X), Convert.ToInt32(Y));
Cursor.Clip = new Rectangle(this.Location, this.Size);
System.IO.File.AppendAllText(@"F:\DOWNLOAD\server.txt", $"{X} and {Y}" + Environment.NewLine);
}
catch (Exception E)
{
// MessageBox.Show(E.ToString());
}
}
Envoyer Coordonnées du client
653 # 492 659 # 490 669 # 489 677 # 486 684 # 483 693 # 476 699 # 470 709 # 460 715 # 453 720 # 444 724 # 437
Recevoir les coordonnées sur le serveur 653 et 492 659 et 490 669 et 489 677 et 486 684 et 483 693 et 476 699 et 470 709 et 460715 # 453720 # 444 724 et 437
problème Voici avec 709 et 460715 # 453720 # 444 parce que les vieux coordonnées ne sont pas poussés vers l'avant et avec une nouvelle qui annexant ne convient pas pour la position de la souris S'il vous plaît aider.
Vous pourriez être mieux servis avec une solution UDP qui ne cache pas les Renvoyez - obtient juste plus d'informations aussi vite que possible. Tant que la position de la souris est envoyée à plusieurs reprises, si vous laissez tomber un paquet de temps en temps, pas de problème. –
Merci @MichaelDorgan Je vais essayer. – DumpsterDiver