send_data_to (ENTITY*, void* data,var size)
send_data_id (long client_id, void* data,var size)
Sendet nicht spezifizierte Daten von einem Klienten zum Server oder von einem
Server zu einem bestimmten oder allen Klienten. Auf jedem PC, der die Daten
empfangen hat, wird die Event-Funktion on_server oder on_client ausgelöst.
Diese Funktion läßt sich zum Übertragen von Datenpaketen zwischen Server und
Klienten verwenden.
Parameter:
ENTITY* - Entity-Pointer, oder NULL.
client_id - Klienten-Nummer, wie sie beim Beitritts-Event empfangen wurde
oder im Strukt einer vom Klienten generierten Entity gespeichert.
data - Pointer auf einen Buffer, der die zu sendenden Daten enthält.
size - Größe des Buffers in Bytes.
Bemerkungen:
- Auf dem Server sendet die Funktion nur an den Klienten mit der angegebenen
ID, bzw. den Klienten, der die angegebene Entity generiert hat. Ist
für den Entity-Pointer NULL gegeben, sendet der Server den String
an alle Klienten.
- Auf dem Klienten ausgeführt, werden die Daten zu dem Server gesendet
und für den Entity-Pointer muß NULL angegeben werden.
- Als ihr erstes Argument erhält die Event-Funktion auf dem empfangenden
PC einen Pointer zum Buffer. Der Buffer ist nur während der Event-Funktion
gültig und wird danach desallokiert.
- Die Größe des Buffers sollte nicht mehr als 1000 Bytes haben - Datenpakete,
die diese Größe überschreiten, gehen bei der Übertragung über das
Internet oft verloren. Ist die Länge des Buffers dem Klienten unbekannt,
läßt er sich in einem Byte, kurz oder lang am Beginn des Buffers
speichern und dann durch den Klienten interpretieren.
Edition:
C LC
Beispiel:
typedef struct MYDATA {
int x;
char c[20];
} MYDATA;
...
MYDATA* mydata = { x = 1; c = "Test!"; }
// sending data
send_data_to(NULL,mydata,sizeof(MYDATA));
//receiving data
function on_client_event(void* buffer)
{
if (event_type == EVENT_DATA)
memcpy(mydata,buffer,sizeof(MYDATA));
}
Siehe auch:
send_var_to,
send_string_to,
on_server,
on_client
► Aktuelle Version Online