2012-08-06 5 views
0

J'écris une application client-serveur où le serveur envoie un objet Vector String sur OutputStream et côté client je le reçois en tant que Byte Array. Maintenant, comment puis-je obtenir l'objet Vector String à partir de ce Byte array?Byte Array to Vector String

+0

Juste une question: pourquoi n'utilisez-vous pas les objets ObjectOutputStream et/ou Serializable à la place? – Timst

+2

Qu'est-ce qu'une chaîne de caractères? Comment est-il sérialisé par l'expéditeur? Sérialisation Java? XML? JSON? mécanisme personnalisé? Montrez-nous du code. –

+0

réellement le serveur peut envoyer la chaîne simple aussi bien que le vecteur des chaînes ... maintenant du côté de client je reçois tout dans le tableau de byte dans un fil de TCP ... maintenant selon l'activité actuelle d'Android sur l'affichage je dois convertir le Octets reçus à une simple chaîne ou un vecteur de chaînes ... donc je ne pense pas que je peux utiliser ObjectOutputStream ... peut être – Anjanu

Répondre

0

Ne pas envoyer d'objet sur un flux. Serialize Vector <String> objet sur le côté serveur et le désérialiser sur le périphérique. Vous pouvez sérialiser un objet en utilisant par ex. JSON. Il y a un grand libarary gratuit de Google qui fait le plus de travail pour vous, il s'appelle GSON (http://code.google.com/p/google-gson/)

+0

Comme le serveur et le client semblent fonctionner sur Java, il peut passer l'étape JSon et simplement sérialiser/désérialiser le object (Vector is Serializable) – Timst

0

Vous devez envoyer correctement, en utilisant serializable ou écrivez la longueur en premier

+0

mais comment différencier sur la fin de récepteurs si les octets que j'ai reçus est une chaîne simple ou sont un vecteur de chaînes ... et si elles sont vecteur de chaînes comment puis-je les obtenir de la réception octets ... Je peux obtenir des chaînes comme String foo = new String (octets) ... mais pas les vecteurs – Anjanu