Problem mit Bytes per TCP.
Übersicht

maxinetBetreff: Problem mit Bytes per TCP. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Liebe Forengemeinde!
Ich habe ein Problem. Es werden zuwenige bytes/sek. übertragen. Woran liegt das? Hier mein Script: Server: Code: [AUSKLAPPEN] Global length%=100
Global file_out$="C:\temp\img.bmp" tcp=CreateTCPServer(8002) Repeat fileIn=AcceptTCPStream(tcp) If fileIn Then bank = CreateBank(length%) fileOut = WriteFile(file_out$) If fileIn And fileOut Then Repeat l=length-1 WaitEvent(1) For I = 0 To length-1 out$=ReadByte(fileIn) If out$="end" Then Exit PokeByte(bank,I,out$) Next For I = 0 To l WriteByte(fileOut,PeekByte(bank,I)) Next FreeBank bank bank = CreateBank(length%) Until Eof(fileIn) CloseFile fileOut FreeBank bank Exit EndIf EndIf Forever CloseTCPServer tcp Client: Code: [AUSKLAPPEN] datei_screen=OpenFile("C:\temp\screen.bmp")
tcp_screen=OpenTCPStream("192.168.178.22",8002);ReadString$(daten),8002) If tcp_screen=0 Then MessageBox("","Der Server antwortet nicht!","Error",$40010) : End Repeat inhalt_screen$=ReadByte(datei_screen) WriteByte tcp_screen,inhalt_screen$ Until Eof(datei_screen) WriteLine tcp_screen,"end" CloseTCPStream tcp_screen CloseFile datei_screen Übers netzwerk werden nur 20kb/s. übertragen -> zu langsam. Was mache ich falsch? Maxi |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
100 Byte pro Packet im LAN ist eindeutig zuviel Overhead. Leute lest euch doch mal ein wenig in ISO / OSI ein, und schaut euch selbst an, wieviel Bytes noch zusätzlich an TCP-, IP- und Ethernet-Header anfallen. Das überragt meistens deutlich mehr, als der Payload von euch ist.
Hier mal zum verdeutlichen: TCP Header ![]() IPv4 Header ![]() Ethernet Header Code: [AUSKLAPPEN] +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethernet destination address (first 32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ethernet dest (last 16 bits) |Ethernet source (first 16 bits)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ethernet source address (last 32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type code | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP header, then TCP header, then your data | | | ... | | | end of your data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ethernet Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ganz zu schweigen davon, dass ein Acknowlegde vom Empfänger noch verschickt werden muss. Und weiterhin: Code: [AUSKLAPPEN] out$=ReadByte(fileIn)
If out$="end" Then Exit Fällt dir was auf? mfg olli |
||
maxinet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm.
Vielleicht out$=ReadByte$(fileIn) ?? Maxi |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
out$ wird nur "0", "1", "2" ... "255" sein. Mit ReadByte liest du halt nur einen ganzzahligen Wert zw. 0 und 255 aus.
mfg olli |
||
maxinet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aha, und wie kann man dann das Problem lösen?
Maxi |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group