2010-12-11 7 views
0

theres un gars dans mon travail qui se connecte à un socket à travers C en utilisant des strates d'octets. Comment puis-je faire la même chose avec Android/Java? Je sais que je peux ajouter plus d'informations, mais je pense que j'ai besoin de quelques réponses pour développer plus dans le bon point.Sockets & Windows Service

Merci à l'avance

Répondre

1

Lire sur la classe java.net.Socket.

Mise à jour: getOutputStream() vous donne une instance OutputStream. Vous pouvez y écrire des tableaux d'octets directement. Pour simuler les types de données C, vous devrez décomposer vos variables en octets en utilisant des opérateurs shift et mask. Par exemple, pour écrire un entier (en supposant qu'il est peu endian sur le fil), utilisez:

int n; 
MyOutStream.write(new byte[]{n&0xff, (n>>8)&0xff, (n>>16)&0xff, (n>>24)&0xff}); 

Pour les chaînes, utilisez toByteArray() avec le codage approprié (« US-ASCII » est pas sûr).

Il y a aussi la classe DataOutputStream, qui peut faire la même chose pour vous, mais IIRC écrit un petit en-tête devant les données, de sorte que les données de fils seront incompatibles avec le protocole existant.

+0

Je réussis à établir la connexion et à travailler avec IO, mais je ne sais pas comment envoyer des paquets d'octets. –

+0

Voir la mise à jour. –

+0

Très bien, merci! mauvais test –