Como utilizar Sockets

3 respostas
J

Pessoal, sou novato nesta onda so Sockets, e tenho um trabalho para fazer usando-o, alguem pode me dar uma explica ai do que significa,
e se não for pedir muito, uma classe com uma implementãção!!!

3 Respostas

J

Oi

Amigão, confere aí

http://www.portaljava.com/home/modules.php?name=Encyclopedia&op=content&tid=278

http://www.portaljava.com/home/modules.php?name=Encyclopedia&op=content&tid=279

http://www.portaljava.com/home/modules.php?name=Encyclopedia&op=content&tid=280

http://www.portaljava.com/home/modules.php?name=Encyclopedia&op=content&tid=281

http://www.portaljava.com/home/modules.php?name=Encyclopedia&op=content&tid=282

T+

M

A tradução de socket é “tomada” (num diz nada, né? :cry: ). Bom socket é o que te permite conectar a uma porta em outra máquina. A porta pode ser aberta por qualquer outro programa ou sistema. Para se ter uma idéia, você pode usar o socket e conectar o seu sistema na internet (usando a porta padrão da internet que é a 80). Para fazer a conexão (como cliente) use a classe Socket do java.

Para fazer o seu aplicativo funcionar como servidor, utilize a classe ServerSocket. Que tem funcionalidades de abrir porta(s) no computador que é usado.

Ambas as classes estão no pacote java.net.

Espero ter ajudado… Qualquer dúvida mais específica, manda aí…

Q
//cliente que escreve uma mensagem no servidor

import <a href="http://java.net">java.net</a>.<em>;

import <a href="http://java.io">java.io</a>.</em>;

import java.lang.*;
public class Client

{

public Client()

{

try

{

ServerSocket sa=new ServerSocket(5158);

Socket s = new Socket(127.0.0.1,8189);

// Pega o fluxo de entrada, lê uma string

// In lê byte a byte

InputStream in = s.getInputStream();

// Bin é uma string de caracteres

// Fluxo intermediário

// ‘new InputStreamReader(in)’ converte byte a byte p/ caracter a caracter

BufferedReader bin = new BufferedReader (new InputStreamReader(in));

System.out.println (bin.readLine());

s=sa.accept();

//BufferedReader cin = new BufferedReader(new InputStreamReader(sa.getInputStream()));

PrintWriter out = new PrintWriter(s.getOutputStream(), true);

out.println(DEUS é FIEL);

}

catch (java.io.IOException e)

{

e.printStackTrace();
}
}

public static void main (String args[])
{ 
	for(;;)
	{

	Client client = new Client(); 
	}		
}

}

///servidor deve ser colocado em outro aquivo

import java.net.;
import java.io.
;

public class Server

{

public Server()

{

//Cria soquete

try

{

s = new ServerSocket(8189);

}

catch (java.io.IOException e)

{

System.out.println(e);

System.exit(1);

}

// OK, agora escuta as conexoes

System.out.println (Servidor esta executando);
try
	{
		while (true)
		{
			client = s.accept();
			//cria um thread separado
			//para atender o pedido
			c = new Connection(client);
			c.start();
		}
	}
	
	catch (java.io.IOException e)
	{
		System.out.println(e);
	}
}

public class Connection extends Thread
{
	public Connection (Socket s)
	{
		outputLine = s;
	}
			
	public void run()
	{
		try
		{
			// cria um objeto PrintWriter com esvaziamento automático
			// isso permite IO de arquivo comum no soquete
			PrintWriter pout = new PrintWriter (outputLine.getOutputStream(), true);
			// agora envia uma msg ao cliente 
			pout.println ("The date and the time is"+ new java.util.Date().toString());
			// agora fecha o soquete
			outputLine.close();				
		}
		catch (java.io.IOException e)
		{
			System.out.println(e);
		}
	}
}
private Socket outputLine;


public static void main (String args[])
{
	Server timeOfDayServer = new Server(); 
}
private ServerSocket s;
private Socket client;
private Connection c;

}

Fique com DEUS amigo
Gustavo Baptista
Fatima do Sul - MS

Criado 9 de agosto de 2004
Ultima resposta 18 de set. de 2004
Respostas 3
Participantes 4