[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 
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 
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?