Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - dntjdals0513

Pages: [1]
1
Network / Server does not receive packets
« on: May 11, 2014, 01:04:23 pm »
client has successfully connected to server,
sends "Hi, I'm client" to the server without error.

But the server does not receive the packet.

What the problem is?

Server source using socket selector :
#include "SFML/Network.hpp"
#include <iostream>
#include <vector>
#include <list>

int main(){

       
        sf::TcpListener listener;
        listener.listen(55001);
       
        std::list<sf::TcpSocket*> clients;
       
        sf::SocketSelector selector;
       
        selector.add(listener);
       

        bool running = true;

        std::cout << "server started" << std::endl;

        while (running)
        {
               
                if (selector.wait())
                {
                       
                        if (selector.isReady(listener))
                        {
                               
                                sf::TcpSocket* client = new sf::TcpSocket;
                                if (listener.accept(*client) == sf::Socket::Done)
                                {
                                        std::cout << "new connection received from " << client->getRemoteAddress() << std::endl;

                                        sf::Packet receivedPacket;
                                        if (client->receive(receivedPacket) == sf::Socket::Done)
                                        {
                                                std::string message;
                                                receivedPacket >> message;
                                                std::cout << message << std::endl;

                                        }

                                       
                                        clients.push_back(client);
                                       
                                       
                                        selector.add(*client);
                                }
                                else
                                {
                                       
                                        std::cout << "error : server has no connection" << std::endl;
                                        delete client;
                                }
                        }
                        else
                        {
                               
                                for (std::list<sf::TcpSocket*>::iterator it = clients.begin(); it != clients.end(); ++it)
                                {
                                        sf::TcpSocket& client = **it;
                                        if (selector.isReady(client))
                                        {
                                               
                                                sf::Packet packet;

                                                switch (client.receive(packet))
                                                {

                                                        case sf::Socket::Done :
                                                                {
                                                                        //...
                                                                        std::string message;
                                                                        packet >> message;
                                                                        std::cout << client.getRemoteAddress() << " said: " << message << std::endl;

                                                                        break;
                                                                }
                                                        case sf::Socket::Disconnected :
                                                                {
                                                                        std::cout << "disconnect from " << client.getRemoteAddress() << std::endl;
                                                                        selector.remove(client);
                                                                        client.disconnect();
                                                                        delete(&client);
                                                                        clients.erase(it);
                                                                        it--;
                                                                        break;
                                                                }      

                                                }
                                        }
                                }
                        }
                }
        }

        return 0;
}
 
and this is my client source
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>

#include <iostream>

int main()
{
        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
        sf::CircleShape shape(100.f);
        shape.setFillColor(sf::Color::Green);

        sf::TcpSocket socket;

        if (socket.connect("192.168.0.8", 55001) != sf::Socket::Done){
                std::cout << "An error ocurred connecting to server" << std::endl;
        }
        else
        {
                std::cout << "connected" << std::endl;
        }

        socket.setBlocking(false);

        while (window.isOpen())
        {
                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed){
                                socket.disconnect();
                                window.close();
                        }
                        if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return)
                        {
                                std::cout << "a" << std::endl;
                                std::string message = "Hi, I am a client";
                                socket.send(message.c_str(), message.size() + 1);
                        }
                }

                window.clear();
                window.draw(shape);
                window.display();
        }

        return 0;
}
 

2
Network / How can i connect socket.io server?
« on: April 26, 2014, 06:57:19 pm »
i'm triying to connect to socket.io server, but it doesn't work.

server source :

var socketio = require('socket.io');
var port = 3303;
var io = socketio.listen(port);

io.sockets.on('connection',function(socket){
   console.log('hi');
   io.sockets.on('connection',function(data){
      console.log(data);
   });
});

client source :

#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>

int main()
{
   sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
   sf::CircleShape shape(100.f);

   sf::IpAddress ipAddress = sf::IpAddress::LocalHost;

   //TCP
   
   sf::TcpSocket socket;
   sf::Socket::Status status = socket.connect(ipAddress, 3303);

   if(status != sf::Socket::Done)
   {
      printf("connection error!\n");
   }
   else{

      printf("IP Address : %s\n", ipAddress.toString().c_str());

   }

   if (socket.send("connection", 11) != sf::Socket::Done)
   {
      // error...
   }


   //UDP
   /*
   sf::UdpSocket socket;

   if (socket.bind(3303))
   {
      printf("connection error!\n");
   }

   if (socket.send("hi", 3, ipAddress, 3303) != sf::Socket::Done)
   {
      printf("sending error!\n");
   }
   */

   shape.setFillColor(sf::Color::Green);

   while (window.isOpen())
   {
      sf::Event event;
      while (window.pollEvent(event))
      {
         if (event.type == sf::Event::Closed){
            socket.disconnect();
            window.close();
         }
      }

      window.clear();
      window.draw(shape);
      window.display();
   }

   return 0;
}

there's no error when running client, but the server doesn't respond.

How can I connect to Node.js socket.io server in SFML client?

Pages: [1]
anything