Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Trådad HttpWebResponse

Postades av 2007-07-22 20:08:23 - Johan Mårtensson, i forum c# (c-sharp), Tråden har 14 Kommentarer och lästs av 869 personer

I en klass skapar jag fyra trådar, i varje tråd skapas en HttpWebRequest med en HttpWebResponse.

Jag vill att dessa fyra trådar ska köras samtidigt men av någon anledning blockeras dom av varandra så att bara en körs samtidigt.

Alla fyra trådarna startas men bara en körs åt gången tills den är färdig, då nästa startar.

Trådarna sätts i vänteläge när jag kommer till GetResponse på requesten.

Någon som vet varför det är så?


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-22 22:03:17 - Johan Djupmarker

Går alla anropen till samma webserver? Det kan inte vara någon begränsning på servern som inte tillåter fler anrop från samma ip-adress?

/Johan


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-22 23:51:08 - Johan Mårtensson

Ja, alla anropen går till samma server men jag tror inte att det är problemet.
Jag har testat med många olika servrar för att utesluta detta.

Jag tror att det är något med GetResponse som sätter de andra trådarna i vänteläge.


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-23 03:21:06 - Joakim Åhl

Kan det vara så att du inte får ha mer en response pga. annars vet han inte vilken request han får. Annars finns ju risk att en GetResponse fångar upp anrop från en anna server. Då kan det ju lätt bli lite tokigt.

En anna anleding kan ju vara den att man inte skall kunna "flooda" webservrar med massa request.

Det är bara gissningar.


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-23 09:18:25 - Oskar Johansson

Använder du något trådsynkroniseringsmojs, typ lock eller liknande? Har du lite kod att visa?


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-23 10:09:18 - Andreas Hillqvist

Joakim, anropen borde ju begäras från olika portar. På swå sätt kan anropen särskiljas.


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-23 13:09:29 - Johan Mårtensson

Jag loopar bara 4 gånger till DownloadFile.

Koden ser ut så här:

        public void DownloadFile(string outPath)
        {
            outFile = outPath;
            // Create a new thread that calls the StartDownload() method
            thrDownload = new Thread(StartDownload);
            log("Start DownloadFile-Thread");
            // Start the thread, and thus call StartDownload()
            thrDownload.Start();
        }

        private void StartDownload()
        {
            try
            {
                // Create a request to the file we are downloading
                webRequest = (HttpWebRequest)WebRequest.Create(dowloadUrl);
                // Set the proxy to use if any
                if (!dowloadProxy.Equals(string.Empty))
                    webRequest.Proxy = new WebProxy(dowloadProxy);

                log("Do the webrequest");
                if(endOffset>0)
                 webRequest.AddRange(startOffset, endOffset);
                else
                 webRequest.AddRange(startOffset);
                log("End the webrequest");

                // Set default authentication for retrieving the file
                webRequest.Credentials = CredentialCache.DefaultCredentials;

                log("Retrieve the response from the server");
                // Retrieve the response from the server
                webResponse = (HttpWebResponse)webRequest.GetResponse();
                log("After Retrieve the response from the server");
                //Ask the server for the file size and store it
                fileSize = webResponse.ContentLength;
                log("Get the response-stream");
                // Get the response-stream
                strResponse = webResponse.GetResponseStream();
                log("After Get the response-stream");

                // Set the output-stream
                strLocal = new FileStream(outFile, FileMode.Create, FileAccess.Write, FileShare.Write);

                // It will store the current number of bytes we retrieved from the server
                int bytesSize;
                // A buffer for storing and writing the data retrieved from the server
                //byte[] downBuffer = new byte[2048];
                byte[] downBuffer = new byte[131072];

                // Set the start-time
                downStart = DateTime.Now;

                log("Start while-loop");
                // Loop through the buffer until the buffer is empty
                while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0)
                {
                    // Write the data from the buffer to the local hard drive
                    strLocal.Write(downBuffer, 0, bytesSize);
                    //CalculateDownloadingInfo();
                }
                log("End while-loop");
            }
            catch (Exception e)
            {
                lastError = e;
                RaiseDownloadError(e);
            }
            finally
            {
                if (strResponse != null) strResponse.Close();
                if (strLocal != null) strLocal.Close();
            }
        }


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-23 18:26:34 - Oskar Johansson

Just de... Är det bara en eller två trådar som körs? Ms hade nämligen i första versionerna av ramverket följt specifikationen för http väldigt noga, och bara tillät två samtidia anslutningar mot samma server. Vet att man var tvungen att åsidosätta det i config för att det skulle fungera. Undrar om inte det är problemet


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-23 20:22:05 - Johan Mårtensson

Jag kör 4 trådar men jag använder VS2005 så det ska nog inte vara problemet


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-23 20:23:29 - Johan Djupmarker

Har du testat att ansluta till 4 olika servrar för att se om det blir någon skillnad?

/Johan


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-23 20:43:55 - Johan Mårtensson

Testade nu att ansluta till olika servrar och då körde de samtidigt så problemet är att ansluta till samma server flera gånger.

Det jag försöker göra är att ladda ner en fil i flera segment som tex GetRight så jag behöver ansluta till samma server.


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-23 21:35:36 - Oskar Johansson

Fråga: Ett annat nedladdningsprogram, fungerar det att köra flera mot samma server?


Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-23 21:59:51 - Johan Mårtensson

Ja, testade samma fil med 4 trådar i GetRight, alla mot samma server och det funkar


Svara

Sv: Trådad HttpWebResponse

Postades av 2007-07-24 05:42:30 - Gunnar Liljas

request.ServicePoint.ConnectionLimit=4;



Svara

Sv:Trådad HttpWebResponse

Postades av 2007-07-24 09:00:24 - Johan Mårtensson

Tack, tack, tack, om du visste hur jag har slitit mitt hår för den raden...

Nu funkar det.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 718
27 958
271 751
3 334
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies