:-o Olá…estou com problemas com relação a sockets…preciso criar um método que me permita indicar o tipo de serviço que um pacote deve setar para ser aceito pelo cliente…já procurei mas, só encontro como configurar em C ou para um datagrama, sendo que eu só preciso dos pacotes TCP…alguém pode me dar uma luz? eh bem urgente 
Obrigada
Vivendo e aprendendo. Procurando por QoS Java achei isto aqui,
http://www.javafaq.nu/java-article460.html
que me direcionou para isto aqui:
Socket.setTrafficClass
DatagramSocket.setTrafficClass
Oi, Thingol!! 
Obrigada por responder, vou testar essa solução…A questão agora é um pouquinho diferente:
Descobri que a classe SocketImpl (cujas especificações podem ser encontradas no link a seguir: http://java.sun.com/j2se/1.3/docs/api/java/net/SocketImpl.html#SocketImpl() ) que implementa a interface SocketOptions (http://java.sun.com/j2se/1.4.2/docs/api/java/net/SocketOptions.html#IP_TOS) pode me dar o resultado que procuro…entretanto,…
eu estou agora com dificuldades para criar o socket…olha só:
package Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketException;
import java.net.SocketImpl;
import java.net.UnknownHostException;
public class SocketClientTCP extends SocketImpl {
private static SocketClientTCP cliente ;
private String ipServidor = "192.168.178.145";
private int porta = 8080;
private boolean flag;
public SocketClientTCP(){
}
public static SocketClientTCP getCliente(){
if (cliente == null){
return cliente = new SocketClientTCP();
}else{
return cliente;}
}
public void gerarConexao( ) throws IOException{
cliente =estabeleceSocket(ipServidor, porta);
if(cliente != null){
cliente.setOption(IP_TOS, new Integer(1));
cliente.setOption(SO_LINGER, new Integer(10));
cliente.setOption(SO_SNDBUF, new Integer(10));
cliente.setOption(SO_RCVBUF, new Integer(10));
DataInputStream fluxoEntrada = new DataInputStream(cliente.getInputStream());
DataOutputStream fluxoSaida = new DataOutputStream(cliente.getOutputStream());
fluxoSaida.writeUTF("Hello!!");
fluxoEntrada.readUTF();
if (fluxoEntrada.readUTF() != null)
System.out.println("conexao bem sucedida");
fluxoEntrada.close();
fluxoSaida.close();
}else{
System.out.println("");
}
}
public SocketClientTCP estabeleceSocket(String ipServidor, int porta){
try {
[b][u]cliente = new Socket(ipServidor, porta);[/u][/b]
System.out.println("Conexao efetuada!");
return cliente;
} catch (UnknownHostException e) {
System.out.println("erro durante criacão do socket: "+ e);
e.printStackTrace();
return cliente;
} catch (IOException e) {
System.out.println("erro durante criacão do socket: "+ e);
e.printStackTrace();
return cliente;
}
}
@Override
protected void accept(SocketImpl s) throws IOException {
// TODO Auto-generated method stub
}
@Override
protected int available() throws IOException {
// TODO Auto-generated method stub
return 0;
}
@Override
protected void bind(InetAddress host, int port) throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void close() throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void connect(String host, int port) throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void connect(InetAddress address, int port) throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void connect(SocketAddress address, int timeout)
throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void create(boolean stream) throws IOException {
// TODO Auto-generated method stub
}
@Override
public InputStream getInputStream() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
protected OutputStream getOutputStream() throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
protected void listen(int backlog) throws IOException {
// TODO Auto-generated method stub
}
@Override
protected void sendUrgentData(int data) throws IOException {
// TODO Auto-generated method stub
}
@Override
public Object getOption(int optID) throws SocketException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setOption(int optID, Object value) throws SocketException {
// TODO Auto-generated method stub
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
SocketClientTCP s=new SocketClientTCP();
s.gerarConexao();
}
}
Meu problema ~e esse que tá grifado… 
quando eu ainda tava usando sõ a interface meu problema era conseguir setar o TOS, agora, que tento utilizar de herança, meu problema eh o construtor(acredito eu) do Socket…tow me matando aqui pra ver se eu posso conseguir implementar o construtor da classe Socket na minha classe SocketClientTCP, se posso fazê-lo do zero…mas não encontro nenhum exemplo…vou tentar o que vc me indicou, mas se souber mais alguma coisa, sou toda ouvidos…Valeuzão!!! :-o
A seguir, código com a interface SoketOptions…
package Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;
public class socketClient implements SocketOptions{
private String ipServidor = “192.168.178.145”;
private int porta = 8080;
public Socket cliente=null;
private int tamBufferEnvio= 5;
private int tamBufferRecebimento=5;
private boolean estado=true;
private int tempo =50;
/**
* @param args
*/
public static void main(String[] args) {
socketClient client = new socketClient();
try {
client.gerarConexao();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
if (cliente != null){
DataInputStream fluxoEntrada = new DataInputStream(cliente.getInputStream());
DataOutputStream fluxoSaida = new DataOutputStream(cliente.getOutputStream());
fluxoSaida.writeUTF("Hello!!");
fluxoEntrada.readUTF();
if (fluxoEntrada.readUTF() != null)
System.out.println("conexao bem sucedida");
fluxoEntrada.close();
fluxoSaida.close();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
*/
}
public void gerarConexao( ) throws IOException{
cliente =estabeleceSocket(ipServidor, porta);
if(cliente != null){
defineTamanhoBuffers(cliente, tamBufferEnvio, tamBufferRecebimento);
definirEsperaFechamentoConexao(cliente, estado, tempo);
[b][u]cliente.setOption(IP_TOS, new Integer(1));[/u][/b]
cliente.setTrafficClass(tc);
DataInputStream fluxoEntrada = new DataInputStream(cliente.getInputStream());
DataOutputStream fluxoSaida = new DataOutputStream(cliente.getOutputStream());
fluxoSaida.writeUTF("Hello!!");
fluxoEntrada.readUTF();
if (fluxoEntrada.readUTF() != null)
System.out.println("conexao bem sucedida");
fluxoEntrada.close();
fluxoSaida.close();
}else{
System.out.println("");
}
}
public Socket estabeleceSocket(String ipServidor, int porta){
Socket cliente=null;
try {
cliente = new Socket(ipServidor, porta);
System.out.println("Conexao efetuada!");
return cliente;
} catch (UnknownHostException e) {
System.out.println("erro durante criacão do socket: "+ e);
e.printStackTrace();
return cliente;
} catch (IOException e) {
System.out.println("erro durante criacão do socket: "+ e);
e.printStackTrace();
return cliente;
}
}
public void defineTamanhoBuffers(Socket cliente,int tamBufferEnvio, int tamBufferRecebimento){
try {
cliente.setSendBufferSize(tamBufferEnvio);
cliente.setReceiveBufferSize(tamBufferRecebimento);
} catch (SocketException e) {
System.out.println("Não foi possível estabelecer tamanhos de buffer: "+ tamBufferEnvio+""+tamBufferRecebimento);
e.printStackTrace();
}
}
public void definirEsperaFechamentoConexao(Socket cliente,boolean estado, int tempo){
try {
cliente.setSoLinger( estado,tempo );//parametros: se so_linger será habilitado ou não e por quanto tempo, se o for...
} catch (SocketException e) {
System.out.println("Não foi possível atribuir valor "+tempo+ "como tempo de fechamento para a conexão");
e.printStackTrace();
}
}
@Override
public Object getOption(int optID) throws SocketException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setOption(int optID, Object value) throws SocketException {
// TODO Auto-generated method stub
}
}
BJOS
Vou fazer uma perguntinha.
Por acaso você está rodando o programa em uma máquina Unix/Linux ou Windows?
Se for em Windows, conforme o reportado no link http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4696356 , não adianta você chamar o tal método sem você acertar uma determinada chave no registry, e em certas versões (mais novas do Windows) o tal acerto nem funciona mais, porque o ToS foi declarado obsoleto nessas versões mais novas do Windows.