2009-04-24, 15:51
  #1
Medlem
f.d. pzhukkes avatar
Tjena!
Håller på att knacka lite sockets i python men har stött på ett problem.

Jag skickar meddelanden mellan client och server, problemet är att recv() buffrar ju den data den tar emot, och på så sätt så får jag felaktiva paket lite då och då.

Jag har läst och kommit fram till att jag måste skicka med en fixed-header på meddelandet som säger hur långt själva meddelandet är, typ: "0003hej".
Problemet är att jag inte vet hur jag ska gå till väga.

Så som jag har listat ut så måste jag först kolla upp 4 bytes för att få in "0003", sedan läsa in 3 bytes till, som innehåller "hej".

Hur ska jag göra?
Citera
2009-04-24, 16:15
  #2
Medlem
War Skeletons avatar
Nu är jag själv ny med python och har aldrig programmerat med sockets. Men du kanske letar efter en funktion som slice?

Kod:
message = "0003hej"

print message[:4]
print message[4:]

Ger outputen:

0003
hej

Mer information om slice finns på: http://www.java2s.com/Code/Python/St...tringSlice.htm
Citera
2009-04-24, 16:21
  #3
Medlem
War Skeletons avatar
Och när jag tänker efter så kanske det räcker med att räkna antal tecken, eftersom att en sträng är en lista med chars:

Kod:
message = "hejsan"

print len(message)

Ger outputen:

6
Citera
2009-04-24, 19:08
  #4
Medlem
Serversidan får väl köra med socket.send(string) där? Samtidigt som clienten lägger på socket.recv(1024). Lycka till
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in