Hey,

is the listening socket on the local host? if so, can you try:
self.sock.connect(("localhost",5000))
instead of:
self.sock.connect(("",5000))
?

(I'm not sure I've seen connect take an empty string as an argument for the
host. Do you know that python defaults that to "localhost"?)

On Mon, Aug 15, 2011 at 2:15 PM, chris oleke <chrisol...@gmail.com> wrote:

> Murphy, the thing is I'd pretty much want to maintain the sockets that I'm
> using at the moment since the third party application is tailored to work
> with them. When I send the data from NOX, I have to close the sockets
> because the data won't be received on the other end if the sockets remain
> open. My flow stats are generated every 10 seconds so my aim is to have them
> sent continously. I had previously tried using sock.setblocking(0) but
> encountered an error *"operation already in progress"* so abandoned using
> it.
>
>
> On Sat, Aug 13, 2011 at 2:34 AM, Murphy McCauley <jam...@nau.edu> wrote:
>
>> It has been long enough since I've looked at the co-op threading in NOX
>> that I don't immediately know what the problem you're having with the file
>> descriptors going away is.  You're sure you're not calling close() on them?
>>  You could try setting the socket to non-blocking mode with
>> sock.setblocking(0).
>>
>> It might be possible to get asynccore to work, but I think it'd probably
>> be some trouble.  Twisted, on the other hand, should more or less just work.
>>  I think you can probably look at the NOX webservice stuff for a bit of an
>> example, but it shouldn't be much different than any other Twisted code.
>>
>> Or if you would be okay with communicating with the other process via JSON
>> strings, you could use jsonmessenger.  Look in monitoring.py from the
>> monitoring component for an example.
>>
>> Hope that helps.
>>
>> -- Murphy
>>
>> On Aug 12, 2011, at 2:03 PM, chris oleke wrote:
>>
>> Hi
>>
>>
>> Hopefully this is still within the Nox domain. I have a python application
>> that is using sockets to send out flows that I have obtained from a
>> flow_stats_in_event to an application external of Nox. This is how I’m doing
>> it
>> self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>> self.sock.connect(("",5000))
>> self.sock.send(repr(flows))
>> self.sock.close()
>>
>> Unfortunately I can only send the flows once before the sockets close
>> after which I get the errors below
>> self.sock.send(repr(flows))
>>   File "/usr/lib/python2.6/socket.py", line 167, in _dummy
>>     raise error(EBADF, 'Bad file descriptor')
>> error: [Errno 9] Bad file descriptor
>>
>>
>> It’s obviously as a result of trying to send information out on a socket
>> that’s been closed. I have tried to look at asyncore and see if I can have
>> an asynchronous socket but haven’t had any luck and my application’s seems
>> to lock/freeze the few times I have tried. Is there a way I can have the
>> socket remain connected so I can have flows sent constantly and also be able
>> to receive data when sent from the external application. I would like a
>> demonstration as well if it’s possible.
>>
>>
>> Thanks
>>
>> Chris
>> _______________________________________________
>> nox-dev mailing list
>> nox-dev@noxrepo.org
>> http://noxrepo.org/mailman/listinfo/nox-dev
>>
>>
>>
>
> _______________________________________________
> nox-dev mailing list
> nox-dev@noxrepo.org
> http://noxrepo.org/mailman/listinfo/nox-dev
>
>
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to