linux-l: UDP Kommunikation per Python

Matthias Kranz m.kranz at linux-ag.com
Mo Apr 9 11:28:11 CEST 2001


On Sun, Apr 08, 2001 at 07:36:23PM +0200, JSC wrote:
> On Sun, Apr 08, 2001 at 03:45:44PM +0200, Carsten Wartmann wrote:
> > Das ganze ist aber noch etwas ruckelig und die Verbindung von mehr
> > als zwei Rechnern wäre IMHO über UDP simpler zu realisieren.
> > 
> > Leider fand ich kein so feines Beispiel mit UDP. Hat da jemand was
> > parat?

Server:

import socket
svrsock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
svrsock.bind("",8000)
while 1:
	data, address=svrsock.recvfrom(256)
	print address[0], "said : ", data

Client:

import socket
clisock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
	data=raw_input("Type something: ")
	if data:
		clisock.sendto(data, ("localhost", 8000))
	else:
		break

s.close()

> du willst nicht wirklich grosse daten ueber udp uebertragen,
> oder ?

Warum denn nicht?

> dann wird deine software n bischen viel dicker, weil udp wirklich
> ziemlich billig ist. du musst verloren gegangene pakete erkennen,
> mit falscher paketreihenfolge klarkommen, ...

Nein. Es kommt darauf an, welchen Service man von seinem Stack
erwartet. Wenn ich kein Problem mit verloren gegangenen oder
unsortierten Paketen, sondern eher eins mit den Macken von TCP, das
mir im Fehlerfall ja durch Protokoll-eigene Pakete weitere Bandbreite
wegnimmt, leben kann, dann ist UDP eine Loesung.

> alles in allem wirst du schliesslich sogar schlechtere 
> datenraten als mit tcp erreichen. udp macht m.e. nur bei
> kleinen datenmengen und wenigen/keinen routern zwischen
> den rechnern sinn.

Bullshit. Broadcasting und Multicasting geht nur mit UDP. Video on
Demand, fette Multimediakonferenzen usw. Das sind alles
Bandbreiten- und Speedhungrige Anwendungen. Einzelne Pakete, die da
verlorengehen, sind nur halb so schlimm, wie "Features" von TCP, die
ich nicht beeinflussen kann.

Gruss,
Matthias
-- 
Matthias Kranz            Linux Information Systems AG
Software Engineer         Fon +49 (0)30 72 62 38-18         Ehrenbergstr. 19
M.Kranz at Linux-AG.com      Fax +49 (0)30 72 62 38-99         D-10245 Berlin
Linux is our Business. ____________________________________ www.Linux-AG.com __



Mehr Informationen über die Mailingliste linux-l