View Single Post
  #6  
Old 06-10-2005, 04:15 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Hi,

Here is a sample script that sends and receives data over a socket. Press spacebar to send a message. When a message is received it will be printed out.
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(COMPUTER_NAME)

#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:
		pass

def onkeydown(key):
	if key == ' ':
		#Send data over the socket
		SendData('hello there')

viz.callback(viz.KEYDOWN_EVENT,onkeydown)


def ontimer(num):
	#Try to receive data from socket
	data = ReceiveData()
	if data:
		print 'Received Message:',data

viz.callback(viz.TIMER_EVENT,ontimer)
viz.starttimer(0,0,viz.FOREVER)
Reply With Quote