[SFML 2.1] Network
Ostatnio zmodyfikowano 2013-08-19 20:15
Bimbol Temat założony przez niniejszego użytkownika |
[SFML 2.1] Network » 2013-08-19 16:10:27 Witam, próbuję napisać prosty Czat w konsoli. Co prawda działa, użytkownik może się połączyć z serwerem i wypisać jedną wiadomość. Następne wypisane wiadomości już nie docierają do serwera. Jako, że jestem w tym zielony nie mam pojęcia dlaczego tak się dzieje. Serwer: #include <SFML/Network.hpp> #include <string> #include <iostream> #include <cstdlib>
using namespace std;
int main() { sf::TcpListener listener; char buffer[ 2000 ]; size_t received; unsigned port; unsigned slot; string server_msg = "Welcome to chat!"; cout << "Enter the port: "; cin >> port; system( "cls" ); cout << "Welcome, type help to show command list" << endl; listener.listen( port ); sf::TcpSocket socket; while( true ) { if( listener.accept( socket ) == sf::Socket::Done ) { cout << "<< removed >>" << endl; socket.receive( buffer, sizeof( buffer ), received ); if( received > 0 ) { cout << buffer; cout << " join to the chat by IP: " << socket.getRemoteAddress() << endl; socket.send( server_msg.c_str(), server_msg.length() + 1 ); } } socket.receive( buffer, sizeof( buffer ), received ); cout << buffer << endl; } return EXIT_SUCCESS; }
Klient: #include <SFML/Network.hpp> #include <string> #include <iostream>
using namespace std;
int main() { sf::IpAddress ip; sf::TcpSocket socket; char buffer[ 2000 ]; size_t received; string ip_adress; unsigned port; string name; cout << "Enter the ip adress: "; cin >> ip_adress; cout << "Enter the port: "; cin >> port; cout << "Enter name: "; cin >> name; socket.connect( ip_adress, port ); socket.send( name.c_str(), name.length() + 1 ); socket.receive( buffer, sizeof( buffer ), received ); cout << buffer << endl; string user_msg = ""; cin.clear(); while( true ) { cout << name << ": "; cin >> user_msg; socket.send( user_msg.c_str(), user_msg.length() + 1 ); } return EXIT_SUCCESS; }
Dziękuję za pomoc. |
|
megatron |
» 2013-08-19 16:39:02 cout << "<< removed >>" << endl; z takim podejściem to może być ciężko ;) #@#EDIT#@#Nie blokujesz listener'a |
|
Bimbol Temat założony przez niniejszego użytkownika |
» 2013-08-19 20:15:01 Cóż nie sądziłem, że zostało to w kodzie :P Jednak zdenerwowała mnie taki mały błąd.
Dziękuję za odpowiedź. Wszystko działa. |
|
« 1 » |