Techster Skrevet 10. november 2011 Del Skrevet 10. november 2011 SEND KODE: Socket send = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("10.0.0.2"), 6789); send.Connect(ipep); send.SendFile("C:\\test.txt"); MOTTA KODE: private void BeginAccept_callback(IAsyncResult iar) { try { Socket temp = (Socket)iar.AsyncState; Socket recv = temp.EndAccept(iar); byte[] b = new byte[1000]; recv.BeginReceive(b, 0, b.Length, SocketFlags.None, new AsyncCallback(BeginRecevie_callback), recv); } catch (SocketException SocExc) { } } private void BeginRecevie_callback(IAsyncResult iar) { try { Socket temp = (Socket)iar.AsyncState; int i = temp.EndReceive(iar); } catch (SocketException SocExc) { } Ikke noe spesielt hokuspokus her egentlig, men problemet er at jeg får en exception i BeginAccept_callback som sier at "en eksisterende tilkobling ble tvangslukket av den eksterne verten". Data som blir sendt til en socket blir "liggende" til den blir lest eller har man et tidsvindu på å lese den og kan man lese data fra en socket som ikke er tilkoblet lenger? Lenke til kommentar
Hårek Skrevet 10. november 2011 Del Skrevet 10. november 2011 Nei. En TCP stream må holdes åpen. Du kan ikke bare bruke den i en funksjon, da lukkes stream umiddelbart. Du trenger en Thread. Lenke til kommentar
Hayer Skrevet 16. november 2011 Del Skrevet 16. november 2011 Du trenger enten en thread som Hårek sier, eller så kan du også bare vente til den blir ferdig, men det vil da få resten til å "fryse" seg mens den står å venter på at den skal bli ferdig med å sende filen. . er oppskrytt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå