Hi,
The networking feature built-in to Vizard uses UDP, but the data is "pickled" before it is sent. This makes it difficult to communicate with non-Python programs, which I assume is what you are doing. If you want to receive raw data over a socket then you can use the Python socket library. Here is some sample code:
Code:
import viz
viz.go()
import socket
#The maximum amount of data to receive at a time
MAX_DATA_SIZE = 1024
#The port to send/receive data on
PORT = 4999
#Get the name of this computer
COMPUTER_NAME = socket.gethostname()
#Get the IP address of this computer
COMPUTER_IP_ADDRESS = socket.gethostbyname('localhost')
#Create a socket to send data over
OutSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
OutSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
#Create a socket to receive data from
InSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
InSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
InSocket.bind(('', PORT))
InSocket.setblocking(0)
def SendData(data):
OutSocket.sendto(data,(COMPUTER_IP_ADDRESS,PORT))
def ReceiveData():
try:
return InSocket.recv(MAX_DATA_SIZE)
except socket.error:
#Insert error handling code here
pass
vizact.onkeydown(' ',SendData,'hello there')
def CheckSocket():
#Try to receive data from socket
data = ReceiveData()
if data:
print 'Received Message:',data
vizact.ontimer(0,CheckSocket)