Avatar billede Slettet bruger
30. januar 2007 - 13:57 Der er 6 kommentarer og
1 løsning

Modtage flere filer på samme port

Jeg skal lave en komponent der kan lytte på f.eks port 20000, og igennem der kunne modtage flere filer på samme tid.
Men hvordan vil sådan et scenarie se ud. Jeg har en client der skal kunne modtage mere én fil ad gangen, og evt også flere overførsler fra samme client på samme tid. Hvordan ser jeg forskel på dataerne og får gemt det i de rigtige filer, og hvordan får jeg atvide at en overførsel er slut osv?

Håber nogle kan bidrage med noget forklaring til hvordan det kunne laves, ikke nødvendigvis noget kode..
Avatar billede arne_v Ekspert
30. januar 2007 - 15:35 #1
er der et problem ?

din server lytter

den accepter connections fra client og hver accept giver en socket / tcpclient
som er specifik for den connection

du wrapper saa den i en stream eller reader

der er vel ikke noget problem med at holde data adskilt

du skal lige vurdere om du vil have en traad per connection eller
lave noget alternativt
Avatar billede innercitydk Nybegynder
30. januar 2007 - 15:38 #2
Du er nok ude i noget client-server løsning med threading.

Hvis du har en server der lytter på en kanal, f.eks 20000. så kan du for hver client der kobler sig på oprette en tråd. Denne tråd kan så håndtere flerbruger problematikken for dig.

De enkelte klienter kan via attributter identificeres på serveren, herfor ved du også fra hvem filerne kommer.

Om hver enkelt klient så skal virke både som server og klient (ala p2p) er en formalitet. Det kommer an på hvad systemet skal bruges til.

Vh Nicki
Avatar billede Slettet bruger
30. januar 2007 - 15:42 #3
Har tænkt mig at lave det sådan:

Nu er det et p2p netværk jeg laver, men en Index server. Serveren indholder info om clienters delte filer osv. Derfor efterspørger en client direkte en anden client på hans lytte port efter en hvis fil.



Client A der requester en fil:
B Lytter på port X, når en connection kommer ind åbener den en tråd som skal sende.

A som requester fil opretter en tråd, opretter en TCP Connection til B, B acceptere. Når A er Connected sender den filnavn. B Læser filnavn og sender filen. A læser stream og gemmer, og afslutter når der ikke er mere at læse.


Er det ikke det?
Avatar billede innercitydk Nybegynder
30. januar 2007 - 15:51 #4
Du kan læse meget mere specifikt her:

http://en.wikipedia.org/wiki/P2p

Når B modtager en request eller et opkald fra A, så opretter b en connection (tcp, udp eller lignende). A skal derfor ikke foretage sig andet end at oprette en tråd og sende socket referencen med som parameter i constructoren.
Avatar billede Slettet bruger
31. januar 2007 - 09:41 #5
Men hvordan kan A sende en besked til B om at sende fil, hvis der ikke er en forbindelse oprettet?
Avatar billede Slettet bruger
31. januar 2007 - 14:19 #6
Okay jeg har løst problemet :)

Smid et svar
Avatar billede innercitydk Nybegynder
09. februar 2007 - 08:45 #7
Vi kan da dele i porten så.

Vh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

BEC Financial Technologies

Java software engineer (regular)

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Driftstærk IT-profil til Forsvarsministeriets Materiel- og Indkøbsstyrelse

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret

Nextway Software A/S

Software Architect