Jump to content

[C++] Ajuda: Socket's (Resolvido)


Recommended Posts

Posted

Bem... estou a tentar trabalhar com sockets em C++, mas como ainda estou um pouco verde em C++ não estou a ter grande sucesso...

Gostava que me indicassem uma boa library de sockets para C++, um site que voces achem bom para  eu aprender a trabalhar com essa library porque como eu não sei trabalhar com isso não sei distinguir os bons dos maus... 😄 .

Andei à procura no google e encontrei várias cenas - Link - E estive a tentar seguir um mini tutu que encontreii, mais especificamente, este. O problema é que ele está-me sempre a pedir ficheiros em falta... e eu não se se os tenho mesmo de colocar à mão ou se existe alguma forma de fazer isso automaticamente...

Resumindo, gostava que me orientassem nesta matéria dos Sockets!

Cumps

Posted

E estive a tentar seguir um mini tutu que encontreii, mais especificamente, este. O problema é que ele está-me sempre a pedir ficheiros em falta...

tem no fim das página link para fazer download de alguns ficheiro, não serão esse que estão a faltar?

Posted

E estive a tentar seguir um mini tutu que encontreii, mais especificamente, este. O problema é que ele está-me sempre a pedir ficheiros em falta...

tem no fim das página link para fazer download de alguns ficheiro, não serão esse que estão a faltar?

Mas depois desses ainda me pede outros que fazem falta ao socket.h se não estou em erro. Tem de se fazer o download dos ficheiros um a um ou existe tipo um pack ou qualquer coisa do genero? Ou talvez eu esteja a fazer isto mal.... O que estou a fazer é: Faço o download dos ficheiros, por exemplo o ServerSocket.h e meto-o na pasta ...\Include do directório do Dev C++, não sei se é assim que se faz..  ?

Já agora... estou a utilizar o Dev C++

Cumps

Posted

como está a usar aspas ("...") no include metes os .h na mesma pasta que os ficheiros que estás a desenolver.

ao que parece o tutorial foi feito em Unix, por isso pode ser que não funcione em Windows.

Posted

hhhmmm, talvez seja esse o problema. E alguem trabalha com sockets que me possa explicar que librarys utiliza e como trabalhar com elas?

Ainda não consegui fazer nada com isto....  :wallbash:  :wallbash:

Cumps

Posted

Esse tutorial é baseado em Linux, e tanto quanto sei os mecanismos de sockets de sistemas operativos *nix não são compatíveis com Windows.

Se estiver correcto, tens que procurar tutoriais de Winsock.

Desaparecido.

Posted

Obrigado pessoal! O problema era mesmo esse  ?. Como isto é para um projecto que estou a começar a desenvolver e inclui um servidor vou mesmo ficar pelos socket's em *nix  😛

Já consegui meter isso a funcionar, mas antes de conseguir surjio um problema que já resolvi mas que gostava de saber porque estava a dar erro, era o seguinte:

Quando estava a compilar dava-me o seguinte erro:

g++    -c -o simple_server_main.o simple_server_main.cpp

simple_server_main.cpp: In function ‘int main(int, int*)’:

simple_server_main.cpp:7: error: ‘cout’ is not a member of ‘std’

simple_server_main.cpp:35: error: ‘cout’ is not a member of ‘std’

make: *** [simple_server_main.o] Error 1

Podem ver o código fonte desse ficheiro aqui

O que eu fiz foi incluir a iostream.h e apaguei a parte -> std:: - ficando apenas o cout <<......

De qualquer forma gostava de saber o que ai estava mal...

Já agora, também encontrei mais uns links interessantes para quem também quiser começar nisto dos Soket's.

Link_1

Link_2

Obrigado pela ajuda  🙂

P.S. - Alguem que trabalhe com Socket's em C++ que me diga qual a library que utiliza?

Cumps

Posted

iostream.h já é c++ standart antigo,  ou podemos dizer que já não é standart.

Correctamente deve-se utilizar "#include <iostream>" com "using namespace std;"

Também é necessário que tenhas essa STL.

As bibliotecas *.h penso que não têm namespaces.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Posted

Qual é a diferença entre #include <iostream.h> e #include <iostream>?

E para que serve o "using namespace std;"? Estive a fazer um pequeno programa com isso e sem isso e não noto diferença.

Cumps

Posted

Com h sem h, não sei muito bem a diferença. É nova norma sem h. Os gajos que fazem a norma C++ andaram a mecher nessas coisa,  penso que a organizar melhor as classes entre outras melhorias, e ficaram com esta nova norma que tem namespaces.

Ora, os namespaces são essencialmente uteis por uma questão de organização e de evitar "Name-Clashes", choques entrenomes iguais.

Por exemplo,  se estiveres em um grupo de programadores em que cada um trabalha com namespaces diferentes, quando juntarem código não têm de se preocupar se deram nomes iguais a classes. Se as classes estão em namespaces diferentes são diferentes mesmo que tenham o mesmo nome.

Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!

Posted

Bem.. para tirar esta quetão a limpo decidi fazer uma pequisa no google sobre o assunto e parece que ainda fiqui com mais dúvidas...

Encontrei este link, mas não percebi bem...

por exemplo, neste bocado aqui:

KRYUKOV:

>

> And the main difference between #include <something.h> and

> #include <something> is that the former puts all the declarations in

> global scope.

Mete o quê num global scope. Já agora o que é um global scope, assim muito resumidamente?

Depois também não percebi isto:

No. There are C headers and there are C++ headers. When you #include a C

header you get the C header. When you #include a header whose name is

the letter 'c' followed by the name of a C header without the .h you get

the C++ version of that header. When you #include a standard header

whose name has no extension you're getting a purely C++ header.

#include <string.h> /* pulls in the C header 'string.h' */

#include <cstring> /* pulls in the C++ version of the

  C header 'string.h' */

#include <string> /* pulls in the C header 'string' */

Aqui confirma-se o que o Rui Carlos disse, mas essa parte do "c" no inicio do nome esta-me a fazer confusão  ?. Então se tiver apenas #include <string> já não é de C++? Então e no caso da iostream? Não tem o "c" no inicio e no entanto (se não estou a dar barraca) é de C++.

Cumps

Posted

é assim, quando uso uma biblioteca como a stdio, como é uma biblioteca do C, coloco o 'h', quando uso uma biblioteca como a iostream, como é uma biblioteca do C++, uso sem o 'h'.

penso que só com as bibliotecas do C++ é que podemos retirar o 'h'.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.