Redes de computadores.

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1039 palavras )
  • Download(s) : 0
  • Publicado : 10 de novembro de 2011
Ler documento completo
Amostra do texto
Trabalho de Redes de Computadores


O trabalho de sockets elaborado pela equipe foi no inicio meio confuso de ser implementado, pois, todos integrantes nenhum de nos tinha conhecimento específicos em C ou C++, os compiladores que nos estávamos usando na maioria das vezes não estavam configurados corretamente, logo, não conseguíamos obter resultado algum.
A biblioteca usada demorou umtempo para a equipe pudesse estudar e adquirir conhecer para poder compreender o que cada função fazia e trazia de retorno, os documentos usados em grande parte foram baseados nos exemplos que a Wikipédia tem. Foi testado o código nos interpretadores MinGW e DevC++ e nada de obter sucesso, logo, um dia dentro da sala de aula, falando com o professor sobre o acontecido o mesmo passou o executáveldo Codeblock, onde o mesmo código implementado por nos que não funcionava no MinGW e nem no DevC++ passou a funcionar perfeitamente no Codeblock
Foram usadas as bibliotecas:
#include <iostream>
#include "Socket.h"
#include <windows.h>
#include <stdlib.h>

Dessas bibliotecas acima, as que tiveram que ser implementadas foram as “Socket.h” e “Windows.h”, foi criado umarquivo também chamado “socket.cpp” onde nele consta todos os parâmetros de configuração e criação do sockets e um arquivo main, que servi como arquivo principal “main.cpp” faz as chamadas para os outros arquivos : o socket.h e o socket.cpp

Falando sobre parâmetro de configuração:
Aos poucos foi se criando um arquivo chamado socket.cpp, código:

Configurar o TCP socket de escuta-> WSAStartup
Socket::Socket()
{
if( WSAStartup( MAKEWORD(2, 2), &wsaData ) != NO_ERROR )
{
cerr<<"Start Socket: Erro com WSAStartup\n";
system("pause");
WSACleanup();
exit(10);
}

MySocket = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);

Essa parte do código consta a inicialização do socket mysocket, logo abaixoconsta os parâmetros de configuração e backup, envia e receber mensagem, pegar mensagem, fechar conexão, configuração de erro ao inicializar.
if ( mySocket == INVALID_SOCKET )
{
cerr<<"Start Socket: Erro ao criar socket"<<endl;
system("pause");
WSACleanup();
exit(11);
}

Parte que o socket cria um arquivo de backup, ele salvatodas as conversas.

myBackup = mySocket;
}

Quando o socket vier seguido de ~, significa que ele não faz a ação que ele deveria fazer, é uma negação.

Socket::~Socket()
{
WSACleanup();
}

Conferi se for verdadeiro o envio de dados

bool Socket::SendData( char *buffer )
{
send( mySocket, buffer, strlen( buffer ), 0 );
return true;
}

Conferise for verdadeiro o recebimento de dados

bool Socket::RecvData( char *buffer, int size )
{
int i = recv( mySocket, buffer, size, 0 );
buffer[i] = '\0';
return true;
}

Parâmetro que informa que a conexão foi encerrada

void Socket::CloseConnection()
{
cout<<"Conexao Encerrada"<<endl;
closesocket( mySocket );
mySocket = myBackup;}



Método de ler e escrever as mensagens

void Socket::GetAndSendMessage()
{
char message[STRLEN];
cin.ignore();

cout<<"\t\t___________________________________"<<endl;
cout<<"\t\t "<<endl;
cout<<"\tEscrever mensagem: > ";
cin.get( message, STRLEN );cout<<"\t\t___________________________________"<<endl;
SendData( message );
}

Método que inicializa o sockets, pegando a porta que foi passada como parâmetro e lista os endereços de rede.

void ServerSocket::StartHosting( int port )
{
Bind( port );
Listen();
}

void ServerSocket::Listen()
{


if ( listen( mySocket, 1 ) == SOCKET_ERROR )
{...
tracking img