2010-11-22 33 views
1

Hey. Est-il possible d'envoyer un paquet à partir d'une application C# sans utiliser de sockets? Je voudrais utiliser WebClient ou HttpWebRequest afin d'envoyer des paquets spécifiquement formatés à un serveur. Les exemples que j'ai vus ont tendance à utiliser le client UDP. MerciEnvoyer des paquets spécifiques avec HttpWebRequest

Répondre

1

Cela dépend de ce que vous entendez par "spécifiquement mis en forme". HttpWebRequest est un wrapper .Net autour du protocole HTTP qui n'est pas UDP en nature, donc vous ne pouvez pas personnaliser les paquets qu'il envoie autres que de modifier des données d'objet comme des en-têtes, etc

+0

Je vois. Cela signifie-t-il qu'il n'y a pas d'autre moyen d'envoyer un paquet plus personnalisé que ce que fournit HttpWebRequest, sans utiliser de sockets? merci – Skoder

+0

Qu'essayez-vous de faire exactement? –

+0

Essayer d'envoyer un paquet magique d'un PC à un autre. – Skoder

0

Vous devriez regarder la classe IPEndPoint, ceci est conçu pour envoyer des données à un point de terminaison de réseau par IP et adresse de port. Voici un exemple simple, voir le lien pour plus de détails et un exemple plus long avec vérification d'erreur.

byte[] data = new byte[1024]; 
string payload = "<Enter Your Payload Here>"; 
IPEndPoint ep = new IPEndPoint("127.0.0.1", 1234); //IP + Port 

Socket remoteServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
data = Encoding.ASCII.GetBytes(payload); 
remoteServer.SendTo(data, data.Length, SocketFlags.None, ep);