.NET Logo
Welcome Guest Search | Active Topics | Members | Log In | Register

!!! ช่วยหน่อยค่ะ visual c#.net 2005 รับส่งไฟล์รูปภาพ client/server แบบ tcp ค่ะ Options · View
icecream
Posted: Thursday, February 21, 2008 9:35:37 PM
Rank: มือฝึกหัด
Groups: Member

Joined: 2/21/2008
Posts: 7

visual c#.net 2005 รับไฟล์รูปภาพ  client/server แบบ tcp แล้วให้แสดงผลที่หน้าจอ หรือ save ภาพที่ได้มาไว้ที่ไหนก็ได้ในคอมเรา

 ช่วยบอก code หน่อยค่ะ รูปตัว interface ประมาณนี้อะค่ะ

http://www.temppic.com/img.php?21-02-2008:1203604248_0.75100100.jpg

ช่วยหน่อยนะค่ะ จะต้องส่งแล้ว ยังไปไม่ถึงไหนเลย หรือใครจะรับทำก็ได้ค่ะ

paedotnet
Posted: Sunday, February 24, 2008 7:41:05 PM

Rank: มือเทพ
Groups: Member

Joined: 12/6/2007
Posts: 354
Location: bkk

// Server ทำหน้าที่ส่งรูป,ข้อมูลที่ไปที่ client


private void Server_Send()
{
  string[] s=readdata.Split(':');
  string name="";
  if (s.Length==3)name=s[2];
  TcpClient t=null;
  if (chatserver.FindUserRoom(name)!=0)
    t=(TcpClient)chatserver.ClientConnections[name.ToUpper()];
 if((t!=null))
  {
            chatserver.Write(client.GetStream(),
                  ChatProtocolValues.SEND_PIC_MSG);
    //Find out the number of byte to read from sender
    string snumbytes=chatserver.Read(client.GetStream());
    int numbytes=int.Parse(snumbytes);
    //read the bytes
    byte[] b=chatserver.ReadBinary(client.GetStream(),numbytes);
    if (b==null)
    {
      chatserver.Write(client.GetStream(),
         "server> Transmission Error");
      return;
    }
    FileStream f=new FileStream(nickname+"_"+name+".jpg",FileMode.Create);
    f.Write(b,0,b.Length);
    f.Close();
    chatserver.Write (t.GetStream(),
      ChatProtocolValues.PIC_FROM_MSG(nickname,name));
 
    chatserver.Write(client.GetStream(),
       ChatProtocolValues.PIC_SEND_MSG(nickname));
  }
  else
  {
    //If target is not found inform sender
    chatserver.Write(client.GetStream(),
      ChatProtocolValues.USER_NOT_FOUND_MSG(name));
  }
}

 

//Client ทำหน้าที่รับรูปมาจาก Server


private void action_get_pic()
{
  string[] s=readdata.Split(':');
  string sender="";
  string picname="";
  if(s.Length==3)sender=s[2];

  picname=sender + "_" + nickname + ".jpg";
  //Check for existence of file
  if(!File.Exists(picname))
    chatserver.Write(client.GetStream(),
      ChatProtocolValues.PIC_NOT_FOUND_MSG(picname));
  else
  {
    //Create a file stream
    FileStream f=new FileStream(picname,FileMode.Open);
    FileInfo fi=new FileInfo(picname);
    byte[] b=new byte[fi.Length];
    f.Read(b,0,b.Length);
    f.Close();
    chatserver.Write (client.GetStream(),
      ChatProtocolValues.GET_PIC_MSG);
    chatserver.Write(client.GetStream(),""+b.Length);
    chatserver.WriteBinary(client.GetStream(),b);
    //Inform the client that all binary data has been send
    chatserver.Write(client.GetStream(),
      ChatProtocolValues.PIC_SEND_ACK_MSG);
    //Locate the sender of the picture
    TcpClient t=null;
    if (chatserver.FindUserRoom(sender)!=0)
      t=(TcpClient)chatserver.ClientConnections[sender.ToUpper()];
    //Inform the sender that the target has gotten the picture
    if(t!=null)
      chatserver.Write(t.GetStream(),
        ChatProtocolValues.GOTTEN_PIC_MSG(nickname));
  }
}
 


[With great power comes great responsibility]
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

YAFVision Theme Created by Jaben Cargman (Tiny Gecko)
Powered by Yet Another Forum.net version 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.


Sponsored by