Jak jsou jednotlivé zprávy od sebe odděleny? Vidím tam v klientovi

    def communicate(self, data):
        self._socket.send('%s %s' % (self.name, data))
        self._socket.recv(self.buffer_size)


A server to čte takto:

        while True:
            data = self._socket.recv(self.buffer_size)

            if data in ('', '\n', '\r\n'):
                return

            try:
                who, op, name = data.split()
            except ValueError:
                raise ValueError('Invalid data')


Co když se zprávy pošlou náhodou tak, že
self._socket.recv(self.buffer_size) přijme
dvě zprávy najednou? To mu pak přijde něco jako "client1 mklock
lock1client2 mklock lock2" a nebude to fungovat - server spadne.

PM


Dne 10. února 2015 14:15 Pavel S <pa...@schon.cz> napsal(a):

> Jeste existuje tzv. DLM (Distributed Lock Manager). Zjednodusene receno,
> je to mutex, ktery je pristupny po siti.
>
> Jeden takovy jednoduchy distributed lock manager jsem napsal v pythonu a
> umistil na activestate zde:
> http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/
> _______________________________________________
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Odpovedet emailem