本文整理汇总了C++中SocketAddress::SetAddress方法的典型用法代码示例。如果您正苦于以下问题:C++ SocketAddress::SetAddress方法的具体用法?C++ SocketAddress::SetAddress怎么用?C++ SocketAddress::SetAddress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SocketAddress
的用法示例。
在下文中一共展示了SocketAddress::SetAddress方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test
void test()
{
SocketAddress addr;
addr.SetAddress("localhost:5000");
GenericSocket genSock(SOCK_DGRAM);
genSock.Bind(addr);
}
示例2: Recibir
int UDPSocket::Recibir(void * data, int lenData, SocketAddress & from)
{
sockaddr address;
int longr = sizeof(address);
recvfrom(GenericSocket::GetSock(), (char*)data, lenData, 0, &address, &longr);
from.SetAddress(address);
return 0;
}
示例3: networkState
//Al principio el estado de la red es UNINITIALIZED
NetworkClient::NetworkClient(std::string _addressServer, std::string _addressClient, std::string _nick):nick(_nick), networkState(NetworkState::UNINITIALIZED)
{
saServer.SetAddress(_addressServer);
SocketAddress myAddress;
myAddress.SetAddress(_addressClient);
int errBind = udpSocket.Bind(myAddress);
int errBlock = udpSocket.NonBlocking(true);
if (errBind > -1 && errBlock > -1)
{
//Si podemos hacer BIND y NONBLOCKING, pasamos a estado SAYINGHELLO
//Este cliente empezará a buscar al servidor.
networkState = NetworkState::SAYINGHELLO;
}
}
示例4: exception
Server::Server(std::string _serverAddress, int _numPlayers)
{
aWords.LoadDefault();
//Inicializar el socket de dispatcher
//Ponerlo a Bind y a Listen
SocketAddress sa;
sa.SetAddress(_serverAddress);
int err = dispatcher.Bind(sa);
if (err == -1)
{
throw std::exception("Error en Server::Server");
}
err = dispatcher.Listen(_numPlayers);
if (err == -1)
{
throw std::exception("Error en listen");
}
}
示例5: Cliente
void Cliente(std::string direccionDestino)
{
UDPSocket udpSocket;
SocketAddress saDestino;
saDestino.SetAddress(direccionDestino);
udpSocket.NonBlocking(true);
while (true)
{
char datos[1300];
int len = StringTools::PideDatosTeclado(datos);
int bytesSend = udpSocket.SendTo(datos, len, saDestino);
if (bytesSend > 0)
{
if (strcmp(datos, "exit") == 0)
{
break;
}
}
}
}
示例6: routine
void routine(std::string direccion,int conexiones) {
//Creamos el socket de dispatching para saber cuando se nos conectan
TCPSpcket dispatchSock;
SocketAddress addressReceive;
addressReceive.SetAddress(direccion);
dispatchSock.Bind(addressReceive);
std::vector<std::shared_ptr<TCPSpcket>> clientList;
dispatchSock.Listen(conexiones);
SocketAddress comesFrom;
for (int i = 0; i < conexiones; i++)
{
clientList.push_back(dispatchSock.Accept(comesFrom));
}
sendToAll(clientList,"BEGIN",conexiones);
}
示例7:
NetworkServer::NetworkServer(std::string _strServerAddress)
{
SocketAddress saServer;
saServer.SetAddress(_strServerAddress);
//TODO: No se están controlando errores de Bind y NonBlocking
udpSocket.Bind(saServer);
udpSocket.NonBlocking(true);
//Forzamos que los jugadores estén desconectados
//También nos aseguramos de que las posiciones iniciales de los jugadores
//en el servidor corresponden con las de los clientes.
//Esto es muy importante para asegurarnos de que el movimiento relativo
//y el dispatch "absolutista" del servidor tienen los valores correctos.
for (int i = 0; i < 4; i++)
{
playerList[i].connected = false;
playerList[i].position = 10;
playerList[i].antiCheatCount = 0;
}
}
示例8: Servidor
void Servidor(std::string direccion)
{
SocketAddress sa;
sa.SetAddress(direccion);
UDPSocket udpSocket;
udpSocket.Bind(sa);
udpSocket.NonBlocking(true);
while (true)
{
char datos[1300];
SocketAddress from;
int bytesReceived = udpSocket.ReceiveFrom(datos, 1300, from);
if (bytesReceived > 0)
{
datos[bytesReceived] = '\0';
std::cout << "Recibo de "<<from<<": " << datos << std::endl;
if (strcmp(datos, "exit") == 0)
{
break;
}
}
}
}