quinta-feira, 6 de novembro de 2008

Comunicação por Socket

Este Exemplo é um algoritmo simplificado de como utilizar Socket com Java.


Classe Servidor



import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServidor implements Runnable {
int servPort;
Socket socket;
ServerSocket servSock = null;
Socket clntSock = null;
private static final int BUFSIZE = 100;

public SocketServidor(int pServPort) {
servPort = pServPort;
socket = new Socket();
}

public void run() {
try {
servSock = new ServerSocket(servPort);
int recvMsgSize; // Tamanho da mensagem recebida
byte[] byteBuffer = new byte[BUFSIZE]; // Buffer de recepção
for (;;) {
System.out.println("Aguardando conexoes de clientes na porta "
+ servPort + "...");
clntSock = servSock.accept();
socket = clntSock;

System.out.println("\nAtendendo cliente IP "
+ clntSock.getInetAddress().getHostAddress()
+ " na porta " + clntSock.getPort());

InputStream in = clntSock.getInputStream();

while ((recvMsgSize = in.read(byteBuffer)) != -1) {
System.out.println("\n> "
+ new String(byteBuffer).substring(0, recvMsgSize));

}
System.out.println("\nCliente fechou conexao.");
clntSock.close();
}
} catch (Exception e) {
System.out.println("\nErro no Servidor.");
}
}

}

Classe Cliente



import java.io.InputStream;
import java.net.Socket;

public class SocketCliente implements Runnable {
Socket servSock = null;
private static final int BUFSIZE = 100;

public SocketCliente(Socket pServer) {
servSock = pServer;
}

public void run() {
try {
int recvMsgSize; // Tamanho da mensagem recebida
byte[] byteBuffer = new byte[BUFSIZE]; // Buffer de recepção
if (servSock != null) {
InputStream in = servSock.getInputStream();

while ((recvMsgSize = in.read(byteBuffer)) != -1) {
System.out.println("\n> "
+ new String(byteBuffer).substring(0, recvMsgSize));
}
}
} catch (Exception e) {
System.out.println("\nErro ao receber mensagem do Servidor");
}
}
}

televisão, televisao, lcd, computador, notebook, radio, mp3, mp4, dvd, aparelhos eletronicos, video, som, informatica, celular, telefone, nokia, erickson

Nenhum comentário:

Google