Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Otruch

Pages: [1]
1
J'ai changé mon server.
au lieu de TCPServer.open(800) j'ai mis TCPServer.open("127.0.0.1",800) et ça marche. Je suppose que l'host par défaut doit être un truc du genre "0.0.0.0"... désolé pour votre perte de temps !

2
Réseau / Re : TcpSocket ne se connecte pas à mon serveur ruby
« le: Mai 09, 2015, 07:24:00 pm »
Bonjour,

l'exemple de la classe TCP Socket marche parfaitement avec l'exemple du serveur tcp en C++, merci de ta réponse !

3
Réseau / [Résolu]TcpSocket ne se connecte pas à mon serveur ruby
« le: Mai 09, 2015, 06:13:00 pm »
Bonjour,

je souhaite créer un client simple en c++ via SFML qui se connecte à un serveur ruby. J'ai fais un serveur simple et un client simple pour mes tests. Seulement le client tcp ne se connecte pas à mon serveur, et renvoie le status 4 : Error.

Je travaille sur SFML 2.3, sous code::block. J'ai la bonne version de sfml car j'ai testé le premier programme qui m'affiche un cercle.

Mon pare feu ne bloque pas ce port, j'ai testé avec un client ruby qui marche parfaitement.

Voici mon code :
simple_server.rb :
require 'socket'               # Get sockets from stdlib

server = TCPServer.open(800)
loop {
        Thread.start(server.accept) do |client|
                puts "new client !"
                receive = client.recv 1000, 0
                puts receive
                client.send "Tu pues du cul !", 0
                client.close
        end
}

main.cpp
#include <iostream>
#include <string>
#include <SFML/Network.hpp>
#include <SFML/System.hpp>

int main()
{
    sf::TcpSocket socket;
    sf::Socket::Status status = socket.connect("localhost",800,sf::seconds(10));
    if(status == sf::Socket::Done)
    {
        char data[1000] = "Hello wesh !";
        status = socket.send(data,1000);
        if(status == sf::Socket::Done)
        {
            size_t received;
            status = socket.receive(data,1000,received);
            if(status == sf::Socket::Done)
            {
                std::string str(data);
                std::cout << "received : " << str << std::endl;
                socket.disconnect();
            }
            else
            {
                socket.disconnect();
                std::cout << "not received, error : " << status << std::endl;
                return -3;
            }
        }
        else
        {
            socket.disconnect();
            std::cout << "not send, error : " << status << std::endl;
            return -2;
        }
    }
    else
    {
        std::cout << "not connect, error : " << status << std::endl;
        return -1;
    }
    return 0;
}
 
Le client attend les 10 secondes de timeout et me renvoie "not connect, error : 4" en retournant -1.

J'ai testé sous "localhost", "127.0.0.1", ou même mon adresse locale "192.168.0.11", mais rien à faire, toujours le même résultat.

Je ne sais pas du tout d'où vient le problème, quelqu'un a une idée?

Je vous remercie d'avance pour votre réponse !

4
Général / Re : SFML 2.1 Codeblock erreur à la compilation
« le: Novembre 17, 2013, 07:57:00 pm »
Ah, effectivement je n'ai pas vu que c'était le compilateur 32 bit qui était inclu. J'ai téléchargé la version 32 bit SJLJ de SFML et maintenant ça marche, merci pour ta réponse !

5
Général / [résolu]SFML 2.1 Codeblock erreur à la compilation
« le: Novembre 17, 2013, 06:02:45 pm »
Bonjour,

ayant voulu me remettre à la programmation sur mon nouvel ordinateur, j'ai voulu installer CodeBlock et la librairie SFML 2.1.
J'ai téléchargé la nouvelle version de CodeBlock(codeblocks-12.11mingw-setup.exe), je l'ai installé avec succès.
J'ai suivi le tutoriel sur SFML-2.1 pour créer un projet sur CodeBlock.
Avant de télécharger tout package, j'ai regardé quels était la dll du répertoire MinGW/bin. Et là surprise, je trouve libgcc_s_sjlj-1.dll et libgcc_s_dw2-1.dll. Je dois donc avoir les 2 versions de GCC.
J'ai donc téléchargé GCC 4.7 TDM (SJLJ) - 64 bits de la version 2.1 de SFML. Etant donné que je suis sur un ordinateur 64 bit...Seulement je viens de me rappeler que CodeBlock ne me demandait pas si j'utilisais du 64 bit ou du 32 bit.
J'ai décompressé l'archive.
J'ai créé un projet vide et je suis allé dans project -> build option.
Je suis allé dans search directories, en sélectionnant mon projet(pour affecter à debug et release).
Dans compiler j'ai ajouté le dossier include de SFML 2.1.
Dans Linker j'ai ajouté le dossier lib de SFML 2.1.
Je suis ensuite allé dans Linker Settings, pour debug j'ai ajouté sfml-network-d suivi de sfml-system-d et pour release j'ai ajouté sfml-network suivi de sfml-system.
J'ai ajouté à la racine du projet : sfml-network-2.dll, sfml-network-d-2.dll, sfml-system-2.dll et  sfml-system-d-2.dll.
J'ai ensuite créé un nouveau fichier main.cpp, et j'y ai intégré le code suivant :
#include <SFML/Network.hpp>

int main()
{
    sf::TcpListener listener;
    return 0;
}
 

Et à la compilation, j'ai ces messages d'erreur :
obj\Release\main.o:main.cpp:(.text$_ZN2sf11TcpListenerD1Ev[__ZN2sf11TcpListenerD1Ev]+0x1)||undefined reference to `_imp___ZTVN2sf11TcpListenerE'|
obj\Release\main.o:main.cpp:(.text$_ZN2sf11TcpListenerD1Ev[__ZN2sf11TcpListenerD1Ev]+0xb)||undefined reference to `_imp___ZN2sf6SocketD2Ev'|
obj\Release\main.o:main.cpp:(.text$_ZN2sf11TcpListenerD0Ev[__ZN2sf11TcpListenerD0Ev]+0x7)||undefined reference to `_imp___ZTVN2sf11TcpListenerE'|
obj\Release\main.o:main.cpp:(.text$_ZN2sf11TcpListenerD0Ev[__ZN2sf11TcpListenerD0Ev]+0x12)||undefined reference to `_imp___ZN2sf6SocketD2Ev'|
obj\Release\main.o:main.cpp:(.text.startup+0x12)||undefined reference to `_imp___ZN2sf11TcpListenerC1Ev'|
||=== Build finished: 5 errors, 0 warnings (0 minutes, 0 seconds) ===|

Quelqu'un aurait-il une solution? Il me semble que je n'ai rien oublié, merci d'avance pour votre réponse !

Pages: [1]
anything