Skip to content

sco_net_v1.send_channel

Queues len bytes on channel_fqn to the other peers (only the host for SCO_NET_TO_HOST). Copies buf; never blocks. SCO_BAD_ARG: a name outside this plugin’s id, len over the channel’s max_len, buf NULL with len > 0, or the wrong direction (a FROM_HOST channel from a joiner, a TO_HOST channel from the host). SCO_NOT_FOUND: this plugin hasn’t registered the channel. SCO_UNAVAILABLE: no active session. SCO_TOO_MANY: over the send quota, or the plugin’s outgoing queue is full; dropped. A message no other peer has a channel for is dropped silently.

sco_result (*)(sco_plugin *, const char *, const void *, uint32_t)

Service index

Property Value
Symbol sco_net_v1.send_channel
Record ID sco-net-v1-send-channel
Service sco.net
Table sco_net_v1
Version macro SCO_NET_VERSION_1_0
Packed table version 65536
Since / availability size >= 40; 1.0
Complete member extent (x64 bytes) 40
Table size (x64 bytes) 64

Header source

sco_result (*send_channel)(sco_plugin* self, const char* channel_fqn, const void* buf, uint32_t len);
Queues len bytes on channel_fqn to the other peers (only the host for SCO_NET_TO_HOST). Copies buf; never blocks. SCO_BAD_ARG: a name outside this plugin’s id, len over the channel’s max_len, buf NULL with len > 0, or the wrong direction (a FROM_HOST channel from a joiner, a TO_HOST channel from the host). SCO_NOT_FOUND: this plugin hasn’t registered the channel. SCO_UNAVAILABLE: no active session. SCO_TOO_MANY: over the send quota, or the plugin’s outgoing queue is full; dropped. A message no other peer has a channel for is dropped silently.

Absent table: query_service NOT_FOUND. Stopped result methods: UNAVAILABLE; self-taking methods reject invalid/released self with BAD_ARG; allocation exceptions: TOO_MANY. Additional failures/output state unspecified unless described in the buffer contract.

Absent table: query_service NOT_FOUND.

Caller buffers; sends copied, callbacks borrow buf for call only. Host owns channels/messages; no allocation transfer.

Any thread; callbacks game thread. Callbacks may call any method in this table.

callbacks game thread.

Callbacks may call any method in this table.

OK means queued, not delivery acknowledgement. Quota/queue failure drops send; no matching peer channel drops silently; unload drops queued messages. Retained-provider faults skip owner resource-release hooks and require restart; backing resources remain retained, not safe for cached calls.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sco_net.h
(*send_channel)
cpp typed-wrapper include/scosdk/net.hpp
return t_->send_channel(self_, name_.c_str(), data.data(), static_cast<uint32_t>(data.size()));
csharp unsupported docs/sdk-csharp.md
There are no C# wrappers for sco.ipc and sco.net yet
lua unsupported docs/net.md
The C# (Sco.Sdk) and Lua layers come in a follow-up

None identified in the catalogue; this is not proof none can exist.

ABI pins prove layout, not semantic behavior or a live game session.