Autor Wątek: sfml network  (Przeczytany 2162 razy)

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 21:14:35
hiho postanowilem napisac laczenie klient/serwer do mojej gry przy uzyciu tcp w sfml no i juz na samym poczatku pojawily sie problemy
na lokalhoscie laczy sie normalnie ale w sieci juz nie co robie zle? : /
o to kod
client.cpp
#include "Client.h"


void Client::Connect( int port, std::string server )
{
    Port = port;
    ServerAddress = "127.0.0.1";
    Server.SetBlocking( false );
    do
    {
    }
    while( !ServerAddress.IsValid() );
   
   
    if( Server.Connect( Port, ServerAddress ) == sf::Socket::Done ) { IsConnected = true; std::cout << "Polaczono z serwerem " << ServerAddress << std::endl; }
   
    else if( Server.Connect( Port, ServerAddress ) == sf::Socket::Error ) { IsConnected = false; std::cout << "Blad przy laczeniu z serwerem " << ServerAddress << std::endl; }
   
}


void Client::GetPing()
{
    std::string buff;
    Server.Receive( Buffer, sizeof( Buffer ), Rec );
    buff = Buffer;
    std::cout << Buffer << std::endl;
   
}

server.cpp  #include "Server.h"

void Server::Connect( int port )
{
    Port = port;
    Client.SetBlocking( false );
    if( !Server.Listen( Port ) ) { IsConnected = false; }
   
    else { IsConnected = true; std::cout << "Serwer slucha na porcie " << Port << ", czekam na polaczenia... " << std::endl; }
   
    if( IsConnected )
    {
        Server.Accept( Client, & ClientAddress );
        std::cout << "Polaczono z klientem: " << ClientAddress << std::endl;
    }
}

void Server::SendPing()
{
    std::size_t buf;
    if( PingTimer.GetElapsedTime() >= 10.f && IsConnected )
    {
        Client.Send( "PING", 4 );
        std::cout << "Wysylam Ping" << std::endl;
        PingTimer.Reset();
    }
}

czy lepiej uzyc winsock?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Marzec 29, 2012, 21:43:22
Stawiasz serwer na komputerze podłączonym do routera ?

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 21:50:03
tak, porty sa odblokowane

Offline flexi

  • Użytkownik

# Marzec 29, 2012, 22:24:05
Moze ip zmienne ?

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 22:26:39
tak mam neostrade : P, sprawdzilem tez na winsock i o dziwo tez nie laczy tylko z localhostem hmm wina firewalla lub routera

Offline Adam7

  • Użytkownik
    • warsztat.gd

# Marzec 29, 2012, 22:31:15
Wina tego, że IP zewnętrzne masz inne niż IP na komputerze i nijak się połączysz. Spróbuj przez hamachi
« Ostatnia zmiana: Marzec 29, 2012, 22:32:56 wysłana przez Adam7 »

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 22:34:41
wyslalem przed chwila koledze serwer i z nim sie udalo polaczyc mimo tego ze tez ma neo : P

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Marzec 29, 2012, 22:36:45
Ma router czy modem/kabel ?

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 22:43:23
modem UPC, postanowilem odrzucic sfml network przez te problemy i napisac komunikacje w winsock

szczerze zawiodl mnie troche network bo chcialem tylko przekompilowac kod z windy na linuksa i serwer by smigal : P

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Marzec 29, 2012, 22:47:35
Smfl network nie ma tu nic do rzeczy, pakiety odrzuca zapora routera. Jest wiele sposobów, żeby to obejść. Moim ulubionym jest hole punching, ale musisz mieć globalny serwer postawiony na zewnętrznym IP lub z góry znać IP klienta/ów.

Offline Liosan

  • Redaktor

  • +1
# Marzec 29, 2012, 22:49:55
modem UPC, postanowilem odrzucic sfml network przez te problemy i napisac komunikacje w winsock
I za 2 tygodnie założysz temat 'hiho postanowilem napisac laczenie klient/serwer do mojej gry przy uzyciu tcp w WinSock no i juz na samym poczatku pojawily sie problemy na lokalhoscie laczy sie normalnie ale w sieci juz nie co robie zle? : /' ? :D

Mnie tam się wydaje, że Ty napotkałeś jakiś bardziej fundamentalny problem, który napotkasz również pisząc w bardziej low-levelowej bibliotece. Ogarnij te zewnętrzne IP, routery, modemy itp (bo z Twoich postów wynika że nie bardzo widzisz co jest czym czego), a dopiero potem pisz sieć ;)

Liosan

Offline Hincu

  • Użytkownik

# Marzec 29, 2012, 23:39:26
no coz nie bede ukrywal ze w programowaniu sieciowym jestem laikiem : P
ale juz powoli cos tam idzie do przodu aczkolwiek sa czasami pewne problemy : P


@edit do moderatorow temat mozna zamknac komunikacje do gry postanowilem napisac przy uzyciu winsock2
« Ostatnia zmiana: Marzec 30, 2012, 20:07:21 wysłana przez Hincu »