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 <[email protected]> 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
> [email protected]
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python
Visit: http://www.py.cz