2011-02-01 2 views
2

J'ai dans mon code Socket socket=new Socket(ipAddress, port);. Je dois envoyer byte[] et recevoir byte[] sur cette prise. Comment faire cela, quels wrappers à utiliser (je toujours envoyer byte[] et recevoir byte[])?Envoi et réception d'octets [] à l'aide de la socket

+1

Regardez la question SO: http://stackoverflow.com/questions/2878867/how-to-send-an-array-of-bytes-over-a-tcp-connection-java-programming –

Répondre

5

Jetez un coup d'œil au tutoriel sur Reading from and Writing to a Socket.

Pour écrire un tableau d'octets à une prise vous devez:

byte[] message = ...; 
Socket socket=new Socket(ipAddress, port); 
OutputStream socketOutputStream = socket.getOutputStream(); 
socketOutputStream.write(message); 

De même, à lire, vous devez utiliser socket.getInputStream.

4

Vous n'avez pas besoin de wrappers. Appelez simplement getInputStream() et getOutputStream() sur l'objet socket. Les objets renvoyés ont les méthodes read(byte[]) et write(byte[]). Veillez à prendre en compte la valeur de retour de read(byte[]) (il renvoie le nombre d'octets réellement lire).

3

Sur le serveur, créez un nouveau ServerSocket et appelez accept() sur l'objet socket pour accepter les connexions entrantes. (Vous voudrez peut-être gérer la session nouvellement connecté à un nouveau thread pour éviter de bloquer le thread principal.)

Du côté client, créez un nouveau Socket et appeler connect() avec l'adresse du serveur et le port pour lancer la connexion.

Questions connexes