Ciao Sto cercando di inviare un semplice messaggio HTTP dal server Flex a C#, ma sembra che sto ricevendo chiamate di rimorchio, prima è quella vera e la seconda è vuota.Gestire http licenziato da Flex nel server C#
Perché è e come posso gestirlo?
Questo è il mio codice C#:
TcpListener listener = new TcpListener(IPAddress.Any, 9400);
listener.Start();
Console.WriteLine("Server started");
Socket client;
while (true)
{
client = listener.AcceptSocket();
// client.Available is an expensive call so it's just for testing
Console.WriteLine("Client accepted " + client.Connected + " " + client.Available);
SocketHandler handler = new SocketHandler();
ThreadPool.QueueUserWorkItem(handler.handleSocket, client);
}
questo è il SocketHandler:
public void handleSocket(object socketObjeck)
{
try
{
socket = (Socket)socketObjeck;
byte[] buffer = new byte[1024];
SocketSettings.setSocket(socket);
//blocker...
try
{
socket.Receive(buffer);
}
catch (Exception e)
{
Console.WriteLine("Error\nFaild reading from socket\n" + e.Message);
socket.Close();
return;
}
parseData(buffer);
socket.Close(3);
}
catch (Exception e)
{
Console.WriteLine("Error\nError \n" + e.Message + "\n" + e.StackTrace);
}
}
E questo è il mio codice flex:
var request:URLRequest = new URLRequest();
request.data = "Hello from flex";
request.url = URL;
request.method = URLRequestMethod.POST;
loader.load(request);
sto ottenendo sempre 2 chiamate. La riga:
Console.WriteLine("Client accepted " + client.Connected + " " + client.Available);
chiamato due volte. Cosa mi manca?
Edit 1: vi posso dire per certo che la seconda chiamata è vuoto, non è nemmeno visto in cromo JavaScript console, è come flex apertura di una connessione, e in attesa di qualche risposta o non so cosa ... ma non invia dati.
Edit 2:
ho cercato di inviare un vera risposta HTTP un avviso di un'altra cosa, la seconda chiamata è in arrivo senza attendere la prima chiamata, se sto mettendo il filo risposta a breve sonno (100 millisecondi nel mio test) quindi ricevo la seconda chiamata prima di essere in grado di rispondere per il primo.
P.S Utilizzando Flex 4.6, Visual Studio 2010
Perché non dare un'occhiata al client fine a ciò che viene effettivamente richiesto? Firebug, Fiddler o Charles saranno in grado di farlo. – spender