PDA

Ver la versión completa : [Ayuda] Una mano con C# y un web server



The_Punisher
15/01/2015, 10:12
Buenas zagales!

Estoy trabajando en un pequeño proyecto en el cuál manejamos con un webserver escrito en Python peticiones GET, ahora he de portarlo a C# y la verdad que se me esta haciendo bastante complicado, a ver si alguno de vosotros ya ha trabajado antes con ello. Os dejo el código del server en Python para que veáis que trato de hacer.

Muchas gracias.

import BaseHTTPServer
import serial
import os


try:
RaspberrySerial = serial.Serial('/dev/ttyACM0', 9600)
except:
RaspberrySerial = serial.Serial('/dev/ttyACM1', 9600)

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
if '/led0_off' == self.path:
RaspberrySerial.write('0')
elif '/led0_on' == self.path:
RaspberrySerial.write('1')
elif '/led1_off' == self.path:
RaspberrySerial.write('2')
elif '/led1_on' == self.path:
RaspberrySerial.write('3')
elif '/led2_off' == self.path:
RaspberrySerial.write('4')
elif '/led2_on' == self.path:
RaspberrySerial.write('5')
elif '/parque_ocupado' == self.path:
RaspberrySerial.write('34')
elif '/parque_despejado'==self.path:
RaspberrySerial.write('25')
elif '/bocina' == self.path:
os.system("aplay police_s.wav")

self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(str(self.path))

if __name__ == '__main__':
HOST_NAME = '0.0.0.0'
PORT_NUMBER = 8088
server_class = BaseHTTPServer.HTTPServer
httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
print "Server Starts - %s:%s" % (HOST_NAME, PORT_NUMBER)
try:
httpd.serve_forever()
except KeyboardInterrupt:
pass
httpd.server_close()
print "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER)


P.D. Quite el formato de código por que lo descuadraba.

The_Punisher
15/01/2015, 11:47
Leo el post y parece que pido que me porteis todo el código, y ni mucho menos, tengo ya el código del servidor y recibe peticiones.

Lo que me gustaría es gestionar esas peticiones tal cómo lo hace el código mostrado aquí.

Nathrezim
15/01/2015, 12:56
Aqui tienes como hacer un post request y un get request en c#. de nada.


Creo que lo que quiere es justo la parte contraria XD. Si C# es tan copia de Java como creo lo vas a tener complicado, por lo menos en Java no conozco clases que te den la funcionalidad de un servidor básico (como el BaseHTTPServer de Phyton) en las librerías estándar, hay que tirar de librerías externas.

^MiSaTo^
15/01/2015, 13:04
Creo que lo que quieres es algo como esto: http://www.codeproject.com/Articles/137979/Simple-HTTP-Server-in-C
Es básicamente heredar de la clase HTTPServer (http://msdn.microsoft.com/en-us/library/system.web.http.httpserver%28v=vs.118%29.aspx). Y juraría que en Java hay algo parecido no?

Nathrezim
15/01/2015, 13:46
Creo que lo que quieres es algo como esto: http://www.codeproject.com/Articles/137979/Simple-HTTP-Server-in-C
Es básicamente heredar de la clase HTTPServer (http://msdn.microsoft.com/en-us/library/system.web.http.httpserver%28v=vs.118%29.aspx). Y juraría que en Java hay algo parecido no?

Si, en el jdk si, pero si vas a pasarselo a alguien en el JRE no esta :( o por lo menos eso tengo entendido. Ya para proyectillos de esos uso Jetty.

^MiSaTo^
15/01/2015, 14:22
Si, en el jdk si, pero si vas a pasarselo a alguien en el JRE no esta :( o por lo menos eso tengo entendido. Ya para proyectillos de esos uso Jetty.

Ni idea hace muchísimos años que no hago ningún proyecto J2EE, era curiosidad

The_Punisher
15/01/2015, 16:27
Muchas gracias a todos :)

La información de ^MiSaTo^ me ha sido de gran utilidad.

^MiSaTo^
15/01/2015, 16:29
Es el primer resultado que encontré, puede que haya mejores ejemplos :) Pero al menos te vale para empezar a buscarlo ^^

The_Punisher
15/01/2015, 17:03
Por curiosidad, ¿puedes decirme que términos usaste para la búsqueda? Créeme que no use pocas cosas para localizar algo así :D

^MiSaTo^
15/01/2015, 17:19
"HttpServer C#" y pillé el primer resultado que salió.

The_Punisher
16/01/2015, 09:32
Pues en mi caso me salía de codeproject otro resultado :(

En cualquier caso, ya está el server funcionando correctamente, muchas gracias.

Estoy empezando a trabajar con C# y aunque muchas cosas salen a la primera en concreto este Server de juguete pensé que sería mas sencillo.

De nuevo gracias.