25. september 2007 - 14:54Der er
8 kommentarer og 1 løsning
Eksempel på server med flere trådede klienter
Jeg skal lave en server hvor til flere trådede klienter kan connecte og sende filer via en socket forbindelse.
Klienten skal kunne overføre store filer og tekst, og serveren skal selvfølgelig kunne skelne mellem klienterne samt hvilken type data det er den modtager.
Har du et link til en demo app der kan ovenstående eller har du selv lavet noget lignende!!?
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Lige et tillægsspørgsmål, hvis man sender data via en NetworkStream og på serversiden samler dataene, hvordan ved man så hvornår den sidste byte er modtaget? Findes der en event eller et flag der fortæller at dette er den sidste del af pakken!?
#### CLIENT ################
FileStream fs = new FileStream(_filename, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); networkStream = new NetworkStream(m_clientSocket); byte[] bread = new byte[fs.Length]; br.Read(bread, 0, Convert.ToInt32(fs.Length)); networkStream.Write(bread, 0, Convert.ToInt32(fs.Length));
#### SERVER ################
public void OnDataReceived(IAsyncResult asyn) { try { SocketPacket socketData = (SocketPacket)asyn.AsyncState; int iRx = socketData.m_currentSocket.EndReceive(asyn); byte[] brev = new byte[iRx]; brev = socketData.dataBuffer;
FileStream fs = new FileStream("C:\\Temp\\"+filename, FileMode.Append); BinaryWriter br = new BinaryWriter(fs);
Jeg sender filesize med i en header pakke og checker efterfølgende på hvornår bytes received er lig filesize. Troede bare at der blev fyret en event når sidste pakke var læst.
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.