Comunicação cliente/servidor em java

[color=“blue”]Boa tarde pessoal, tenho um trabalho pra fazer na faculdade da matéria de comunicação de dados, e achei alguns exemplos em java, porém gostaria de inserir comentários nesses algoritmos, mas como meu conhecimento não é vasto em java, fiquei meio perdido, então gostaria da ajuda de vocês, será que vocês podem inserir comentários nas principais linhas dos algoritmos abaixo?
Agradeço desde já.[/color]

import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { Sting sentence; Sting modifiedSentence; BufferedReader inFromUser = new BufferedReader( new InpuStreamReader()System.in)); Socket clientSocket = new Socket("Hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader inFromUser = new BufferedReader(new InpuStreamReader(clientSocket.getOutputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'; modifiedSentence = inFromServer.readLine(); System.out.println("From server: " + modifiedSentence); clientSocket.close(); } }

import java.io.*; import java.net.*; import java.util.*; classWebServer { public static void main(String argv[]) throws Exception { String RequestMessageLine; String fileName; ServerSocket listenSocket = new ServerSocket(6789); Socket connectionSoquet = listenSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream OutToClient = new DataOutputStream(connectionSoquet.getOutputStream()); requestMessageLine = inFromClient.readLine(); StringTokenizer tokenizedLine = new StringTokenizer(requestMessageLine); if (tokenizedLine.nextToken().equals("Get")) | fileName = tokenizedLine.nextToken(); if (fileName.startsWith("/") == true) fileName = fileName.substring(1); File file = new File(fileName); Int numOfBytes = (int) file.length(); FileInputStream inFile = new FileInputStream(fileName); byte[ ] fileInBytes = new byte[numOfBytes]; inFile.read(fileInBytes); outToClient.writeBytes("HTTP/1.0 200 Document Follows\r\n") if (fileName.endsWith(".jpg")) outToClient.writeBytes(""Content-Type: image/jpeg\r\n"); if (fileName.endsWith(".gif")) outToClient.writeBytes("Content-Type: image/gif\r\n"); outToClient.writeBytes("\r\n"); outToClient.writeBytes(fileInBytes, 0, numOfBytes); connectionSoket.close(); } else System.out.println("Bad Request Message"); } }

ahh malandrão… daí vc pega e entrega como se vc tivesse feito… putz q feio!!

Cara, não quer ajudar, não atrapalha, não falte com respeito também, saiba que sempre que faço pesquisas coloco referências ao autor, você que deve copiar as coisas e diz que você que fez!
Peço ajuda ao pessoal sério aqui do fórum, porque de babaca já basta esse aí!

magoei :cry:

se vc pedir desculpas eu comento pra ti, mas tu tem q prometer q não vai entregar como se fosse seu… ok?!

[quote=“viecili”]magoei :cry:

se vc pedir desculpas eu comento pra ti, mas tu tem q prometer q não vai entregar como se fosse seu… ok?![/quote]
Com certeza! Até mesmo porque o professor conhece os alunos que tem e sabe que eu não criaria algoritmos desse tipo, nem os comentários.
Inclusive, na parte de referências, o endereço desse tópico estará presente, incluindo seu nome.

vamos lá então:

[code]import java.io.;
import java.net.
;
/** Classe cliente que conecta ao servidor via Socket */
class TCPClient {
public static void main(String argv[]) throws Exception
{
Sting sentence;
Sting modifiedSentence;

  // leitor da entrada padrão
  BufferedReader inFromUser = new BufferedReader( new InpuStreamReader(System.in));

  // cria socket e conecta a localhost na porta 6789
  Socket clientSocket = new Socket("localhost", 6789);

  // obtem o stream para enviar dados ao servidor
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

  // obtem o stream para receber dados do servidor
  BufferedReader inFromServer = new BufferedReader(new InpuStreamReader(clientSocket.getInputStream()));

  // lê da entrada os dados enviados pelo usuario
  sentence = inFromUser.readLine();

  // envia os dados recebidos do usuario mais quebra de linha para o servidor
  outToServer.writeBytes(sentence + '\n');

  // recebe do servidor a sentenca modificada
  modifiedSentence = inFromServer.readLine();

  // escreve na saída padrão a sentenca modificada
  System.out.println("From server: " + modifiedSentence);

  // fecha conexão com o servidor
  clientSocket.close();

}
}[/code]

[code]import java.io.;
import java.net.
;
import java.util.*;
/** Classe servidor web via Socket */
classWebServer {
public static void main(String argv[]) throws Exception
{
String RequestMessageLine;
String fileName;

  // abre um socket servidor para escutar na porta 6789
  ServerSocket listenSocket = new ServerSocket(6789);

  // pára aqui e fica aguardando conexão de algum cliente
  Socket connectionSoquet = listenSocket.accept();

  // recebeu conexão
  // obtem o stream para receber dados do cliente
  BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

  // obtem o stream para escrever para o cliente
  DataOutputStream OutToClient = new DataOutputStream(connectionSoquet.getOutputStream());

  // recebe a instrucao de requisicao do cliente
  requestMessageLine = inFromClient.readLine();

  // separa a requisicao em partes (separadas por espaco)
  StringTokenizer tokenizedLine = new StringTokenizer(requestMessageLine);

  // se o primeiro pedaco for 'Get' o nome do arquivo recebe o pedaco seguinte
  if (tokenizedLine.nextToken().equals("Get")) {
     fileName = tokenizedLine.nextToken();

  // se o nome do arquivo comecar com '/', retira a barra
  if (fileName.startsWith("/"))
        fileName = fileName.substring(1);

     // abre o arquivo local
     File file = new File(fileName);

     // lê o tamanho do arquivo
     Int numOfBytes = (int) file.length();

     // lê o arquivo de uma vez para a memoria
     FileInputStream inFile = new FileInputStream(fileName);
     byte[ ] fileInBytes = new byte[numOfBytes];
     inFile.read(fileInBytes);

     // escreve o cabecalho da resposta para o cliente
     outToClient.writeBytes("HTTP/1.0 200 Document Follows\r\n")

     // verifica a extensão do documento e ajusta o content-type da resposta         
     if (fileName.endsWith(".jpg"))
       outToClient.writeBytes(""Content-Type: image/jpeg\r\n");
     if (fileName.endsWith(".gif"))
       outToClient.writeBytes("Content-Type: image/gif\r\n");

     // escreve todo o conteúdo do arquivo local na resposta
     outToClient.writeBytes("\r\n");
     outToClient.writeBytes(fileInBytes, 0, numOfBytes);
     outToClient.flush();

     // fecha a conexao com o cliente
     connectionSoket.close();
  } else {
     // não sendo um 'Get' escreve a msg na saida padrao
     System.out.println("Bad Request Message");
  }

}
}[/code]

Caro rasta, tá aí os comentários e algumas modificações no código, mas tem vários problemas nesse código aí, é bastante provável que o cliente e o servidor fiquem bloqueados caso ocorra algum problema na comunicação.

Desculpe a brincadeira,
Abraço

Obrigadão aí!
Esse código tirei de um livro de comunicação de dados muito respeitado na área: James F. Kurose & Keith W. Ross. Redes de Computadores e a Internet - Uma nova abordagem. Addison Wesley. Tradução para o português da 1a. edição do livro original ingles, revisto pelo Prof. Dr. Wagner Zucchi da EPUSP.
Mais uma vez obrigado!

:brinde:

com certeza os autores/revisores deste livro são Engenheiros e não ‘Cientistas da Computação’

gostaria que me ajudassem… não tenho noção alguma de java, mas meu professor de redes 1 pediu que fizessemos a correção necessaria nesse codigo.
a intenção é que o servidor envie mensagens para o cliente. alguem pode me ajudar?