2016-04-26 5 views
1

Ich werde dies vorweg sagen, indem ich sage, dass ich C nicht fließend bin, also vergib mir, wenn ich Wissen vermisse, das ich haben sollte.POST-Listener in Dateiübertragung

Ich habe versucht, ein Programm zu bauen, das die ganze Zeit läuft (nur sitzt auf einem Server) und jedes Mal gibt es eine Post-Anfrage von einer bestimmten IP-Adresse (aka 192.215.129.28 zum Beispiel) an einem bestimmten Port (445) mein Programm würde alles posten, was gepostet wird (was eine gziped-Datei sein sollte) und es dann in einem Ordner in meinem Netzwerk speichern, in dem dieses Programm läuft.

ich zur Zeit Code hören auf MYLOCAL Netz anzufordern, aber wenn ich es auf die IP ändern muss ich höre ich

"An unhandled exception of type 'System.Net.HttpListenerException' occurred in System.dll 

Additional information: The process cannot access the file because it is being used by another process"pop up in my visual studio. 

bekommen Alles, was ich tue, ist diese Zeile zu ändern:

listener.Prefixes.Add("http://127.0.0.1:8000/"); 

zu dieser Linie

listener.Prefixes.Add("http://192.215.129.28:445/"); 

Welche diesen Fehler verursacht. Ich bin mir auch nicht sicher, wie man das bekommt, was gepostet wurde. Meistens versuchen wir nur diesen Fehler zu lösen, haben aber stundenlang damit zu kämpfen, warum die IP-Änderung es bricht.

Hier ist die volle Funktion nur für den Fall es gebraucht wird:

private void Form1_Load(object sender, EventArgs e) 
     { 
      listener = new HttpListener(); 

      listener.Prefixes.Add("http://192.215.129.28:445/"); 
      listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous; 

      listener.Start(); 
      this.listenThread1 = new Thread(new ParameterizedThreadStart(startlistener)); 
      listenThread1.Start(); 

     } 
+1

zu verwenden Und was passiert, wenn man auf 192.215.129.28 hören, aber auf 8000 Port? – Evk

+0

@Evk genau das gleiche. Es kann jedoch erwähnenswert sein, dass wenn ich diesen Listener falsch mache.Prefixes.Add ("http://127.0.0.1:8000/"); mit Port 445 bricht es dann auf die gleiche Weise. So bricht es jederzeit seinen Port 445 oder wenn ich diese IP mit irgendeinem Port verwende. – Lain

+0

Alle Änderungen, die Sie ausführen, dass nicht-evelated (d. H. Nicht als Admin)? – Evk

Antwort

1

try dieses

listener.Prefixes.Add("0.0.0.0:445"); 
+0

Dies bietet keine Antwort auf die Frage. Sobald Sie genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment); stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (http://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/12531580) – Console

+1

@Console Es bietet eine Antwort. Ob es richtig ist oder nicht, spielt keine Rolle. – cybermonkey