Merge remote-tracking branch 'MaD_CaT/master'

This commit is contained in:
sasha80
2024-03-05 09:22:16 +03:00
3 changed files with 72 additions and 12 deletions

View File

@@ -11,6 +11,9 @@ class Socket extends PacketPeerUDP:
class SocketTCP extends TCPServer:
func send_to():
pass
const RX_TIMEOUT: int = 1000 # Время сброса счётчика принятия части пакета
var peerstream: = PacketPeerStream.new()
var unit_key: Array # Клюс юнита
@@ -103,12 +106,13 @@ func poll_receive_tcp(sock: SocketTCP, tick: int) -> bool:
if sock.is_connection_available(): # check if someone's trying to connect
var client = sock.take_connection() # accept connection
sock.peerstream.set_stream_peer(client) # bind peerstream to new client
print_debug('client_is_connected')
var peer = sock.peerstream.get_stream_peer()
if peer:
var peer_len_data = peer.get_available_bytes()
if peer_len_data > 0:
get_client_data(sock, peer_len_data, peer, tick)
if sock.unit_key in units and sock.rx_all: units[sock.unit_key].parse(sock.rx_data, tick)
if sock.unit_key in units_tcp and sock.rx_all: units_tcp[sock.unit_key].parse(sock.rx_data, tick)
return false
@@ -151,5 +155,9 @@ func _process(_delta: float) -> void:
match unit.process(tick):
Error.OK: sock_unicast.send_to(addr, unit.tx_data)
Error.FAILED: emit_signal('socket_error', 'ошибка: %s %s:%d' % [unit, addr[0], addr[1]])
for addr in units_tcp:
var unit = units_tcp[addr]
match unit.process(tick):
Error.OK: unit.send_to(addr, unit.tx_data)
poll_sockets.any(func(sock): poll_receive(sock, tick))
tcp_sockets.any(func(sock): poll_receive_tcp(sock, tick))