Skip to content

Instantly share code, notes, and snippets.

@rdb

rdb/bamrecv.py Secret

Created August 6, 2015 20:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rdb/d29cea0b5934589cf304 to your computer and use it in GitHub Desktop.
Save rdb/d29cea0b5934589cf304 to your computer and use it in GitHub Desktop.
import sys
import time
from panda3d import core
core.load_prc_file_data("", "notify-level debug")
manager = core.QueuedConnectionManager()
rendezvous = manager.open_TCP_server_rendezvous(28723, 1)
if not rendezvous:
print("Cannot grab port")
sys.exit(1)
listener = core.QueuedConnectionListener(manager, 1)
listener.add_connection(rendezvous)
reader = core.DatagramGeneratorNet(manager, 0)
reader.set_tcp_header_size(4)
while not listener.new_connection_available():
time.sleep(0.001)
rv = core.PointerToConnection()
address = core.NetAddress()
new_connection = core.PointerToConnection()
if listener.get_new_connection(rv, address, new_connection):
print("Got connection from %s" % (address))
reader.add_connection(new_connection.p())
else:
sys.exit(1)
bam = core.BamReader(reader)
bam.init()
node = bam.read_object()
bam.resolve()
core.NodePath(node).ls()
while True:
if not reader.is_eof():
object = bam.read_object()
bam.resolve()
print(object)
time.sleep(0.001)
import socket
import struct
import time
data = open('test.bam', 'rb').read()[6:]
print(repr(data))
conn = socket.create_connection(('localhost', 28723))
conn.sendall(data)
time.sleep(1)
conn.sendall(data)
conn.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment