私は sfml を学ぼうとしていますが、以下のコードは私自身のものではありません。後で私は自分自身を書きます。今のところ、接続が実際の IP に接続しない理由を知る必要がありますが、ローカル IP を使用すると機能します。
ここに私のコードがあります
#include<SFML/Graphics.hpp>
#include<SFML/Network.hpp>
#include<iostream>
#include<stdlib.h>
#include<ctime>
int main()
{
sf::IpAddress ip = "142.187.215.01"; // works with 127.0.0.1 or sf::IpAddress::localhost
std::cout << ip;
sf::TcpSocket socket;
char connectionType;
std::string text = "";
char buffer[2000], mode = 'r';
std::size_t received;
std::cout << "Enter (s) for Server, Enter (c) for Client: ";
std::cin >> connectionType;
if(connectionType == 's')
{
sf::TcpListener listener;
listener.listen(2000);
listener.accept(socket);
text += "Server";
mode = 's';
}
else if(connectionType == 'c')
{
socket.connect(ip, 2000);
text += "Client";
}
socket.send(text.c_str(), text.length() + 1);
socket.receive(buffer, sizeof(buffer), received);
std::cout << buffer << std::endl;
bool done = false;
while(!done)
{
if(mode == 's')
{
std::getline(std::cin, text);
socket.send(text.c_str(), text.length() + 1);
mode = 'r';
}
else if(mode == 'r')
{
socket.receive(buffer, sizeof(buffer), received);
if(received > 0)
{
std::cout << "Received: " << buffer << std::endl;
mode = 's';
}
}
}
return 0;
}