WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rating: Thread Rating: 4 votes, 5.00 average. Display Modes
  #1  
Old 06-22-2007, 04:58 PM
Steve_HT Steve_HT is offline
Member
 
Join Date: Jan 2007
Posts: 13
Generic UDP or TCP/IP function

Does Vizard have in place in a generic TCP/IP protocol as part of the networking package, or is it presently configured only for the Vizard Networking communications?

If there is not such a protocol, how difficult would it be to create? I'd like to port data from a set of XServes across either TCP/IP or UDP to drive the hand and other objects in my environment.
Reply With Quote
  #2  
Old 06-22-2007, 05:04 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
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)
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 06:06 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC