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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Sockets;
using System.Threading;
namespace Application // pour connecter au Robot
{
class AgentBras
{
public string etatdeconnectionbars = null;
public bool MissionEffectuerBRAS = false;
private Socket ReceveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
private Socket SendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
private Socket ip_serveur, ip_client;
private string ip;
protected int port_send;//8888
protected int port_recu;//7777
private byte[] buffer = new byte[1024];
private int byteRecue;
//***************************constructur pour définir l'add IP et les ports de communication de l'agent distant *****
public AgentBras(string iip, int sp, int recp)
{
ip = iip;
port_send = sp;
port_recu = recp;
}
public bool FinMission(string agent_sender, string message)
{
if (message == "ok")
{
MissionEffectuerBRAS = true;
return true;
}
else return false;
}
//********************************pour démarrer la connexion avec l' agent remot bras <Robuter/ULM>***************
public string star_connection()
{
bool clientconnect = false;
bool serveurconnect = false;
try
{
IPHostEntry ipHostInfo = Dns.Resolve(ip);
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint IP = new IPEndPoint(ipAddress, port_send);
try
{ SendSocket.Connect(IP); }
catch { return "Connection échoué avec le Socket Serveur du Bras"; }//**************************
clientconnect = true;
}
catch
{
return "Connexion échoué avec le Socket Serveur du Bras";//***************************
}
//********************************************serveur*********************
try
{
IPHostEntry ipHostInfo = Dns.Resolve(ip);
IPAddress ipAd = ipHostInfo.AddressList[0];
IPEndPoint iP2 = new IPEndPoint(ipAd, port_recu);
try
{
ReceveSocket.Connect(iP2);
}
catch
{
return "Connexion échoué avec le Socket client du Bras.";
}
serveurconnect = true;
}
catch
{
return "Connection échoué avec le Socket client du Bras.";
}
if ((serveurconnect) && (clientconnect)) return "Connecté";//tatdeconnectionbars = "Le Bras est Connecté";
else return"Connexion échoue avec le Bras"; //********************************
}
//***************fonction d'envoi*******************************
public String Envoyer(String S)
{
try
{
byte[] msg = Encoding.ASCII.GetBytes(S);
int bytesSent = SendSocket.Send(msg);
}
catch
{
return "Echec d'envoi des données.";
}
return "Fin d'envoi de : "+S ;
}
//**********fonction de recevoir******************************
public String Recevoir()
{
String msg;
try //ou while(true)
{
byteRecue = ReceveSocket.Receive(buffer);
msg = Encoding.ASCII.GetString(buffer, 0, byteRecue);
}
catch
{
return "Erreur lors de la réception.";
}
// Array.Clear(bytes, 0, bytes.Length);
return msg;
}
//*************pour déconnecter l'agent************************
public String Deconnecter_Bras()
{
bool deconnecteclientbras = false;
bool deconnectionservbras = false;
try
{
SendSocket.Disconnect(true);
SendSocket.Shutdown(SocketShutdown.Both);
SendSocket.Close();
deconnecteclientbras = true;
}
catch
{
return "Erreur lors de la Déconnexion Client Bras.";
}
try
{
ReceveSocket.Disconnect(true);
ReceveSocket.Close();
deconnectionservbras = true;
}
catch
{
return "Erreur lors de la Déconnexion Serveur Bras.";
}
if ((deconnectionservbras) && (deconnecteclientbras)) return "Le Bras est Déconnecté.";
else return "Erreur lors de Déconnexion de Bras.";
}
} |
Partager