2012-05-16 27 views
5

Ich brauche einen Nodejs-Server, der mit einer C# -Anwendung verbunden ist, ich mag keine Bibliotheken von Drittanbietern, also habe ich versucht, einen TcpClient zu verwenden, der Server ist so etwas :tcp client mit socket.io (nodejs)

var io = require('socket.io').listen(8000); 
io.socket.on('connection',function(socket) 
{ 
console.log("connected"); 
} 

und auf dem C# Projekt:

var client = new TcpClient(Server,8000); 
Socket s = client.Client; 
if (!s.Connected) 
{ 
    s.SetSocketOption(SocketOptionLevel.Socket, 
    SocketOptionName.ReceiveBuffer, 16384); 
    MessageBox.Show("disconnected"); 
} 
else 
{ 
    MessageBox.Show("connected"); 
    s.Send(Encoding.UTF8.GetBytes("something")); 
} 

für das, was ich auf den "something" verstand ich etwas schreiben soll, dass die „auf (‚Verbindung‘)“ auf der NodeJS Seite auslösen würde, sind Ich vermisse etwas?

PS: wenn Sie eine gute Drittanbieter-Bibliothek für wissen, was ich brauche Sie es eigentlich

+2

mag nicht mit Bibliotheken von Drittanbietern genießen Sie das Rad neu erfinden. Dort, FTFY;) –

+0

true: P, aber ich versuche, so sauber wie möglich zu machen, wenn zum Beispiel mein Problem nur ist: "Verbindung: {Daten: Wert}", und es funktioniert gut, ich brauche nicht Bibliotheken von Drittanbietern ... aber wenn ich ein Buch schreiben muss, würde ich über Bibliotheken von Drittanbietern nachdenken;). Ich möchte wissen, wie es funktionieren könnte, bevor ich Drittanbieter-Sachen benutze. – Joaolvcm

+0

Ist node.js kein HTTP-basiertes Protokoll? Oder unterstützt es Socket-Level-Programmierung? Wenn es nur HTTP ist, müssen Sie HTTP-Anforderungen senden, anstatt nur Daten in den Socket zu schreiben. –

Antwort

0

erwähnen könnte, um den Server (‚Verbindung‘) zum Zeitpunkt des Feuers sollten Sie Ihre TcpClient Objekt konstruieren, weil das ist, wenn Die Verbindung tritt auf und nicht an dem Punkt, an dem Sie versuchen, Daten zu senden.

+1

Die 'MessageBox.Show (" connected ");' wird ausgelöst, wenn der socket.io-Server läuft, aber das 'on ('connection')' nicht – Joaolvcm