469,949 Members | 2,699 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,949 developers. It's quick & easy.

Unbinding sockets in threads..

Chaps,

I've written a piece of python code below that when called with a line such
as x = getdata(9999), listens on that port for data I'm sending it and puts
the data in a list. If I delete x using del x and then try and assign a new
value to port 9999 (e.g z=getdata(9999) ) then it reports that the socket it
already bound, and I can't find any way of unbinding the port.

If I try it not in a thread the del function works fine (i.e. creating and
binding a socket s and then deleting it) Can anyone suggest some
modifications I can do to make this work??

Thanks in advance

Dave

import threading
import socket
import struct
import sys
import time

class getdata(threading.Thread):
def __init__(self, port):
threading.Thread.__init__(self)
self.x = ['ZERO SPACE']
self.s = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
try:
self.s.bind(( '', port))

except socket.error, msg:
print "Could not bind to socket"
time.sleep(3)
self.s.close()
sys.exit(1)
self.carryon = 'true'
self.start()


def run(self):
while self.carryon == 'true':
self.data, self.addr = self.s.recvfrom( 1024 )
self.channel, self.value = struct.unpack( 'IBxxx' , self.data )
try:
self.x[int(self.channel)] = self.value
except IndexError:
while len(self.x)-1 < int(self.channel):
if len(self.x) == int(self.channel):
self.x.append(self.value)
else:
self.x.append('NA')
except:
print "Dictionary creation error"
time.sleep(3)
self.s.close()
sys.exit

print self.x
return
Jul 18 '05 #1
0 1044

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Tero Saarni | last post: by
4 posts views Thread by Julia Goolia | last post: by
reply views Thread by Gonçalo Rodrigues | last post: by
2 posts views Thread by Stressed Out Developer | last post: by
4 posts views Thread by taskswap | last post: by
11 posts views Thread by Steven | last post: by
4 posts views Thread by nyhetsgrupper | last post: by
6 posts views Thread by Richard | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.