Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 10 trên tổng số 75 kết quả

Đề tài: Lỗi: Object reference not set to an instance of an object trong lập trình C# - Nguyên nhân và cách khắc phục

Threaded View

  1. #11
    Ngày gia nhập
    11 2010
    Bài viết
    16

    Unhappy Mặc định Lỗi: Object reference not set to an instance of an object xuất hiện khi gửi Image qua mạng

    Sắn tiện về topic này, giúp mình fix lỗi này trong trường hợp gửi Image theo multithread + Serialize với,
    Client gửi request cho Server thì Server gửi hình cho Client, tuy nhiên gửi xong là chuơng trình báo Exception ở Server,
    các bác giúp đỡ về phần này với (dòng chú thích ở dòng bị lỗi mình tô màu tím)
    Code Server
    Visual C# Code:
    1. namespace Server
    2. {
    3.     public partial class FrmServer : Form
    4.     {
    5.         TcpListener server;
    6.         public FrmServer()
    7.         {
    8.             InitializeComponent();
    9.         }
    10.  
    11.         private void btStarting_Click(object sender, EventArgs e)
    12.         {
    13.             btStarting.Enabled = false;
    14.             Listening();
    15.         }
    16.         void Listening()
    17.         {
    18.             try
    19.             {
    20.                 server = new TcpListener(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
    21.                 server.Start();
    22.                 while (true)
    23.                 {
    24.                     TcpClient client = server.AcceptTcpClient();
    25.                     new ClientThread(client);
    26.                 }
    27.                 server.Stop();
    28.             }
    29.             catch (Exception)
    30.             {
    31.                 MessageBox.Show("Error!!!");
    32.             }
    33.         }
    34.     }
    35.  
    36.     class ClientThread
    37.     {
    38.         string path = "E:\\pictures\\"; //path thư mục chứa hình
    39.         Thread thread;
    40.         TcpClient client;
    41.         public ClientThread(TcpClient client)
    42.         {
    43.             this.client = client;
    44.             thread = new Thread(new ThreadStart(GuiNhanDL));
    45.             thread.Start();
    46.         }
    47.         void GuiNhanDL()
    48.         {
    49.             StreamReader sr = new StreamReader(client.GetStream());
    50.             BinaryFormatter formatter = new BinaryFormatter();
    51.             while (true)
    52.             {
    53.                 string s = sr.ReadLine();
    54.                 if (s.ToUpper().Equals("QUIT")) break; [COLOR="Magenta"]//debug báo dòng này bị lỗi Object reference not set to an instance of an object[/COLOR]
    55.                 if (s.ToUpper().Equals("ME"))
    56.                     formatter.Serialize(client.GetStream(), Image.FromFile(path + "me.jpg"));
    57.                 else formatter.Serialize(client.GetStream(), Image.FromFile(path + "other.jpg"));
    58.             }
    59.             client.Close();
    60.         }
    61.     }
    62. }

    code Client
    Visual C# Code:
    1. namespace Client
    2. {
    3.     public partial class FrmClient : Form
    4.     {
    5.         TcpClient client;
    6.         public FrmClient()
    7.         {
    8.             InitializeComponent();
    9.         }
    10.  
    11.         private void btConnect_Click(object sender, EventArgs e)
    12.         {
    13.             try
    14.             {
    15.                 client = new TcpClient();
    16.                 client.Connect(IPAddress.Parse(txtIPSv.Text), int.Parse(txtPortSv.Text));
    17.                 if (client.Connected)
    18.                 {
    19.                     Thread threadReading = new Thread(new ThreadStart(StartReading));
    20.                     threadReading.Start();
    21.                 }
    22.             }
    23.             catch (Exception)
    24.             {
    25.                 MessageBox.Show("Error!!!");
    26.             }
    27.         }
    28.         void StartReading()
    29.         {
    30.             try
    31.             {
    32.                 while (true)
    33.                 {
    34.                     using (NetworkStream stream = client.GetStream())
    35.                     {
    36.                         BinaryFormatter formatter = new BinaryFormatter();
    37.                         Image img = (Image)formatter.Deserialize(stream);
    38.                         picDisplay.Image = img;
    39.                     }
    40.                 }
    41.             }
    42.             catch (Exception)
    43.             {
    44.                 MessageBox.Show("Error!!!");
    45.             }
    46.         }
    47.  
    48.         private void btRequest_Click(object sender, EventArgs e)
    49.         {
    50.             StreamWriter sw = new StreamWriter(client.GetStream());
    51.             if (txtRequest.Text != string.Empty)
    52.             {
    53.                 sw.WriteLine(txtRequest.Text);
    54.                 sw.Flush();
    55.                 txtRequest.ResetText();
    56.                 txtRequest.Focus();
    57.             }
    58.             else
    59.             {
    60.                 MessageBox.Show("Ban chua nhap request vào textBox Request!!!");
    61.                 txtRequest.Focus();
    62.             }
    63.         }
    64.     }
    65. }
    Đã được chỉnh sửa lần cuối bởi meoluoi_91 : 29-12-2011 lúc 12:03 PM.
    Muốn THÀNH CÔNG phải KIÊN TRÌ giữ vững MỤC TIÊU

Các đề tài tương tự

  1. Trả lời: 9
    Bài viết cuối: 26-10-2013, 10:27 PM
  2. Error:Object reference not set to an instance of an object.Không khởi chạy được file Global.asax
    Gửi bởi nightelf trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 16-04-2013, 12:10 PM
  3. Cách sửa lỗi Object reference not set to an instance of an object trong Xml
    Gửi bởi thangemhamhochoi trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 27-11-2012, 09:58 AM
  4. lỗi Object reference not set to an instance of an object. khi submit form dùng Html.DropDownList
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 03-05-2012, 04:02 AM
  5. Socket Lỗi Object reference not set to an instance of an object. Lấy email sử dụng POP3 trong C#
    Gửi bởi kamikaze129 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 26-04-2011, 10:56 AM

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn