Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ช่วยดูโค้ดโปรแกรมให้หน่อยค่ะ เป็นภาษา C# มันติด error ไม่รู้ว่ามันคืออะรัยค่ะ คือตอนนี้กำลังเขียนโปรแกรมรับส่งไฟล์ผ่านเครื่อข่ายค่ะ



 

ช่วยดูโค้ดโปรแกรมให้หน่อยค่ะ เป็นภาษา C# มันติด error ไม่รู้ว่ามันคืออะรัยค่ะ คือตอนนี้กำลังเขียนโปรแกรมรับส่งไฟล์ผ่านเครื่อข่ายค่ะ

 



Topic : 057414

Guest




คือตอนนี้กำลังเขียนโปรแกรมรับส่งไฟล์ผ่านเครื่อข่ายค่ะ
แล้วอยากให้ server กับ client สามารถส่งไฟล์หากันได้
แต่ตัวโค้ดมันติด error เลยอยากให้พี่ๆ ช่วยดูให้หน่อยว่าเป็นเพราะอะรัย
หรือมีวิธีการเขียนยังงัยช่วยแนะนำหน่อยค่ะ

โค้ด 1

Code (C#)
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(String[] args)
        {
            // 1. to create a socket
            Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // 2. Fill IP
            IPAddress IP = IPAddress.Parse("127.0.0.1");
            IPEndPoint IPE = new IPEndPoint(IP, 4321);

            // 3. binding
            sListen.Bind(IPE);

            // 4. Monitor
            Console.WriteLine("Service is listening ...");
            sListen.Listen(2);

            // 5. loop to accept client connection requests
            while (true)
            {
                Socket clientSocket;
                try
                {
                    clientSocket = sListen.Accept();
                }
                catch
                {
                    throw;
                }

                // send data to the client
                //clientSocket.Send (Encoding.Unicode.GetBytes ("I am a server, you there?? !!!!"));

                // send the file
                //byte[] buffer = ReadImageFile ("1.jpg");
                byte[] buffer = ReadImageFile("xx.ppt");
                clientSocket.Send(buffer, buffer.Length, SocketFlags.None);
                Console.WriteLine("Send success!");
            }
        }

        private static byte[] ReadImageFile(String img)
        {
            FileInfo fileinfo = new FileInfo(img);
            //  byte[] buf = new byte[fileInfo.Length];
            byte[] buf = new byte[fileinfo.Length];
            FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read);
            fs.Read(buf, 0, buf.Length);
            fs.Close();
            //fileInfo.Delete ();
            GC.ReRegisterForFinalize(fileinfo);
            GC.ReRegisterForFinalize(fs);
            return buf;
        }

    }
}



โค้ด 2

Code (C#)
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(String[] args)
        {
            // 1. to create a socket
            Socket S = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // 2. fill in the remote IP
            IPAddress IP = IPAddress.Parse("127.0.0.1");
            IPEndPoint IPE = new IPEndPoint(IP, 4321);

            Console.WriteLine("started connection service ....");
            // 3. connect to the server
            S.Connect(IPE);

            // 4. receive data
            byte[] buffer = new byte[1000000];
            S.Receive(buffer, buffer.Length, SocketFlags.None);
            //var Msg = Encoding.Unicode.GetString (buffer);
            //Console.WriteLine ("received message: (0)", msg);
            Console.WriteLine("Receive success");

            //          FileStream fs =  File.Create ("1.jpg");
            FileStream fs = File.Create("yy.ppt");
            fs.Write(buffer, 0, buffer.Length);
            fs.Close();

            Console.ReadKey();
        }
    }
}


แล้วมันจะติด error

ที่ติด error

ช่วยอธิบายหน่อยค่ะว่าคืออะรัย



Tag : .NET, C#, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-03-17 18:35:12 By : aofaff View : 5348 Reply : 21
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Go to : ช่วยอธิบายการเขียนโปรแกรมรับส่งไฟล์ผ่านเครือข่าย ด้วยภาษา C# หน่อยค่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-17 21:17:01 By : webmaster
 


 

No. 2

Guest


ขอบคุณพี่ mr.win ที่ช่วยตอบข้อสงสัยค่ะ
แต่ตัวที่ให้ไปศึกษานะทำตามแล้วแต่ทำมัยได้แค่รันอย่างเดียวค่ะ
แต่ทำอะรัยไม่ได้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-17 21:53:58 By : aofaff
 

 

No. 3

Guest


ผมก็เอาไปรันดูแล้วก็ติดเหมือนกันคับ
คัยพออธิบายได้ช่วยหน่อยคับ
มัยติด  Errorr

พอรันขึ้นมาแล้วพอจะกดส่งก็เกิด Error คับ
คัยพออธิบายได้ช่วยหน่อยคับ
ขอบคุณมากมายคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-23 13:02:22 By : kit
 


 

No. 4



โพสกระทู้ ( 71 )
บทความ ( 1 )



สถานะออฟไลน์


หนูเองก็ไม่ค่อยแน่ใจนะคะ

แต่เท่าที่ดู Error มันบอกว่า มันหาไฟล์ xx.ppt ไม่เจออ่ะค่ะ
ต้องลองดูว่า ไฟล์นี้ มีอยู่จริงหรือเปล่าค่ะ หรือถ้ามีอยู่จริง อาจจะมีการกำหนดที่อยู่ไฟล์ไม่ถูกต้องหรือเปล่าคะ
โปรแกรมเลยหาไฟล์ไม่เจอค่ะ

ลองดูนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 16:17:47 By : roongine
 


 

No. 5

Guest


มีคัยพอที่จะแก้ปัญหาได้ไหมคับช่วยหน่อยคับตอนนี้ผมรันดูแล้วก็ยังติด Errer อยู่คับ
ช่วยหน่อยคับ ขอบคุณล้วงหน้าเลยนะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-24 18:20:57 By : kit
 


 

No. 6

Guest


หาแล้วคับไม่เจอคับ
ช่วยดูหัยหน่อยได้ไหมคับ

ขอบคุณ Roongine สำหรับคำตอบดีๆๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 01:05:07 By : kit
 


 

No. 7

Guest


byte[] buf = new byte[fileinfo.Length];

ช่วยหน่อยคับหาไม่เจอจิงๆคับ

ขอบคุณล้วงเลยนะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 03:02:07 By : kit
 


 

No. 8



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


หา file ไม่เจอชัวร์ครับ ลอง check path ดูน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 07:06:22 By : dirmus
 


 

No. 9

Guest


ผมไม่เข้าใจคับ
check path

ขอคำอธิบายหัยหน่อยนะคับ

ขอบคุณสำหรับคำตอบของ Guest ขอบคุณมากนะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 09:30:25 By : kit
 


 

No. 10



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ว่าแต่ path ขอไฟล์นั้นมันจากไหนครับ ปกติน่าจะมี path ทีถูกต้องเช่น C:\picture\xxx.jpg มันถึงจะสมารถเรียกไฟล์ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 09:35:59 By : webmaster
 


 

No. 11



โพสกระทู้ ( 71 )
บทความ ( 1 )



สถานะออฟไลน์


ใช่ค่ะ ลองใส่เป็น path ดูนะคะ
เพราะว่า FileInfo มันรับค่า เป็น Path ไม่ใช่เหรอคะ ถ้าเข้าใจไม่ผิด

ก็ลองใส่เป็น Path เช่น C:\picture\xx.ppt
หรือไม่ก็ลองใช้ Server.MapPath("xx.ppt") ดูนะคะ

ได้ผลยังไง ส่งข่าวด้วยนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-25 13:39:37 By : roongine
 


 

No. 12

Guest


ยอมรับนะคับว่าไม่เป็นจริงๆ หาวิธีแก้แล้วแต่ไม่ได้
หรือว่าผมแก้ไม่ถูกบอกหน่อยคับ


ขอบคุณสำหรับคำตอบนะคับคุณ Roongine Sang

แก้ไม่ได้จิงๆคับ แก้หัยหน่อยคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-27 16:51:26 By : kit
 


 

No. 13

Guest


คือตอนนี้โปรแกรมสามารถส่งได้แล้วค่ะ
โดยเอาไฟล์ xx.ppt ไปไว้ที่ bin ของ ConsoleApplication1 แล้วก็รัน ตัว ConsoleApplication2
ก็สามารถรับไฟล์ได้ค่ะ
คือตอนแรกก็ไม่ได้ลองเอาไว้ดูนะค่ะ

****แต่ว่าก็ยังไม่เข้าใจว่าถ้าเราอยากจะส่งไฟล์อื่นบ้างละค่ะ
โดยที่เราไม่ต้องมาเปลี่ยนชื่อไฟล์ในโค้ดทุกครั้งที่ส่งแบบนี้ จะเขียนโค้ดยังงัยดี
พี่ท่านใดมีวิธีการ หรือคำแนะนำใดก็ช่วยบอกหน่อยนะค่ะ
ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-28 15:49:15 By : aofaff
 


 

No. 14



โพสกระทู้ ( 162 )
บทความ ( 0 )



สถานะออฟไลน์


แทรก Code นี้
Console.Write("Please input path file :");
string filename = Console.ReadLine();
byte[] buffer = ReadImageFile(filename); 




หากเป็น Winapp
OpenFileDialog browseFile = new OpenFileDialog();

browseFile.Filter = "XML Files (*.xml)|*.xml";

browseFile.Title = "Browse XML file";

if (browseFile.ShowDialog() == DialogResult.Cancel)

return;

try

{

txtBrowse.Text = browseFile.FileName;

}

catch (Exception)

{

MessageBox.Show("Error opening file", "File Error",

MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-28 17:08:18 By : superpheak
 


 

No. 15

Guest


ขอบคุณสำหรับคำตอบนะคับคุณ pheak
แต่ไม่รู้ว่าแทรกตรงไหนคับบอกหน่อยคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-28 22:48:30 By : kit
 


 

No. 16

Guest


ผมไม่รู้ว่าแทรกตรงไหนคับรกวนหน่อยคับ

ขอบคุณนะคับสำหรับคำตอบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-30 00:58:53 By : kit
 


 

No. 17



โพสกระทู้ ( 162 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเขียน โปรแกรมฝั่ง Server ให้ให้ใหม่นะ ว่างๆ

ก็คอมไพล์โปรแกรมปรกติ
การใช้งาน
1. Start โปรแกรม Server ขึ้นมา
2. เลือกไฟล์ที่ต้องการส่ง ขณะนี้โปรแกรมจะทำการสร้าง Connection เพื่อรอติดต่อจาก Client
โดยจะแสดงข้อความ "ขณะนี้กำลังรอ Client ติดต่อมาอยู่"
3. Start โปรแกรม Client (ใช้โปรแกรมเดิม) ฝั่ง Server จะแสดงข้อความ Client ติดต่อมาแล้ว กดส่ง File ได้
พร้อมกับปุ่มส่ง File Enabled
4. เมื่อส่ง File เสร็จ จะแสดงข้อความ ส่ง File เรียบร้อยแล้วครับ

ลอง test ดู work ไหม..

server

Code (C#)
using System;
using System.Drawing;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text;
using System.Windows.Forms;

class Server : Form
{
   private TextBox txtPath;
   private Label lblStatus;
   private Button btnSend;
   Socket clientSocket;
   public Server()
   {
        Text = "ตัวอย่าง Server Tranfer file นะครับ.";
        Size = new Size(400,150);

        txtPath = new TextBox();
        txtPath.Parent = this;
        txtPath.Size = new Size(300, 2 * Font.Height);
        txtPath.Location = new Point(5, 14);

        Button btnBrowse = new Button();
        btnBrowse.Text = "เลือก File";
        btnBrowse.Parent = this;
        btnBrowse.Size = new Size(6 * Font.Height, 2 * Font.Height);
        btnBrowse.Location = new Point(310, 10);
        btnBrowse.Click += new EventHandler(btnBrowse_OnClick);

        btnSend = new Button();
        btnSend.Text = "ส่ง File";
        btnSend.Parent = this;
        btnSend.Size = new Size(6 * Font.Height, 2 * Font.Height);
        btnSend.Location = new Point(310, 50);
        btnSend.Click += new EventHandler(btnSend_OnClick);
        btnSend.Enabled = false;

        lblStatus = new Label();
        lblStatus.Parent = this;
        lblStatus.Text = "ขณะนี้กำลังรอ Client ติดต่อมาอยู่";
        lblStatus.AutoSize = true;
        lblStatus.Location = new Point(5, 50);

   }
   void btnBrowse_OnClick(object obj, EventArgs ea)
   {
       OpenFileDialog browseFile = new OpenFileDialog();
       browseFile.Title = "Browse file";
       if (browseFile.ShowDialog() == DialogResult.Cancel)
           return;
       try
       {
           txtPath.Text = browseFile.FileName;
       }
       catch (Exception)
       {
           MessageBox.Show("Error opening file", "File Error",
           MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
       }

       Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
       IPAddress IP = IPAddress.Parse("127.0.0.1");
       IPEndPoint IPE = new IPEndPoint(IP, 4321);
       sListen.Bind(IPE);
       sListen.Listen(2);

       while (true)           
        {                            
            try              
            {                    
                clientSocket = sListen.Accept();
                lblStatus.Text = "Client ติดต่อมาแล้ว กดส่ง File ได้";
                btnSend.Enabled = true;
                return;
                
            }               
            catch               
            {                    
                throw;               
            }
       }

   }

    private static byte[] ReadImageFile(String img)       
    {            
        FileInfo fileinfo = new FileInfo(img);           
        byte[] buf = new byte[fileinfo.Length];           
        FileStream fs = new FileStream(img, FileMode.Open, FileAccess.Read);           
        fs.Read(buf, 0, buf.Length);            
        fs.Close();           
        GC.ReRegisterForFinalize(fileinfo);           
        GC.ReRegisterForFinalize(fs);            
        return buf;        
    }

   void btnSend_OnClick(object obj, EventArgs ea)
   {
            byte[] buffer = ReadImageFile(txtPath.Text); 
            clientSocket.Send(buffer, buffer.Length, SocketFlags.None);
            lblStatus.Text = "ส่ง File เรียบร้อยแล้วครับ "; 
   }

    public static void Main()
    {
        Application.Run(new Server());
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-30 13:25:01 By : superpheak
 


 

No. 18

Guest


ขอรบกวนถามอีกซักครั้งนะค่ะ
ทำไมตัวโปรแกรม ตัวอย่าง Server Tranfer file
มันถึงติด error ที่หน้าต่าง Form1.Designer.cs ค่ะ

error


ติด error ที่บรรทัด txtPath btnSend lblStatus ทั้งที่ก็ตั้งชื่อครบแล้ว
private System.Windows.Forms.TextBox txtPath;
private System.Windows.Forms.Button btnBrowse;
private System.Windows.Forms.Button btnSend;
private System.Windows.Forms.Label lblStatus;


ช่วยตอบข้อสงสัยหน่อยนะค่ะ
ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-04-02 21:12:15 By : aofaff
 


 

No. 19

Guest


คือโปรแกรมที่ผมเขียนเนี่ย ต้อง Run ผ่าน visual command prompt ครับ
copy ไปใว้ในนามสกุล .cs ไฟล์เดียว แล้ว complier โดย csc xx.cs
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-04-03 12:30:49 By : pheak
 


 

No. 20

Guest


ขอบคุณพี่ pheak นะค่ะที่ช่วยแนะนำ
แต่อยากรู้ว่า copy ตัว .cs หรือ ตัว .exe ค่ะ
เพราะเอาไปวางแล้วแต่ก็ยังรันไม่ขึ้นนะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-04-06 14:40:36 By : aofaff
 


 

No. 21

Guest



ไม่เป็นไรจ๊ะ ที่รัก คิคิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-13 18:32:48 By : คนหล่อ
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูโค้ดโปรแกรมให้หน่อยค่ะ เป็นภาษา C# มันติด error ไม่รู้ว่ามันคืออะรัยค่ะ คือตอนนี้กำลังเขียนโปรแกรมรับส่งไฟล์ผ่านเครื่อข่ายค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่