Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: làm sao cho các client thay đổi màu cùng lúc!

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

    Mặc định làm sao cho các client thay đổi màu cùng lúc!

    Mình viết chương trình Server cho nhiều client đăng nhập vào bằng một username.Sau đó Server sẽ phát sinh một tọa độ x,y bất kì và gửi về cho client.Client nhận được thì button tương ứng tọa độ này sẽ đổi màu đỏ.
    Nhưng khi có client 1 đang nhap rồi sau đó client 2 đăng nhập thì chỉ có client 2 và server có 2 ô đỏ mà client 1 không cập nhật được nên vẫn chỉ có 1 ô đỏ.Mặc dù mình đã cho server 1 thread chỉ liên tục gửi thông tin tọa độ các user đăng nhập và tương úng cho client 1 thread luôn lắng nghe để cập nhật
    Mong các bạn giúp mình !
    http://www.mediafire.com/?zivxoyq350hua29
    Đã được chỉnh sửa lần cuối bởi tto_1991 : 24-09-2011 lúc 01:13 AM.

  2. #2
    Ngày gia nhập
    03 2010
    Bài viết
    72

    Sao không ai giúp mình hết vậy!

  3. #3
    Ngày gia nhập
    03 2010
    Bài viết
    72

    hu hu!em bí rồi mọi người ơi thử hết 3 cách rồi mà vẫn không cho các client có số ô màu giống nhau được

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã định sửa cho bạn nhưng mà quả thực là code của bạn thì mình thua. Chạy multi thread mà khai báo 1 biến client toàn cục. Ko biết máy bạn chạy sao chứ nhiều lần debug mình đã thấy nó bị 2 thread cùng gán trị rồi đó. Bạn dùng những cách nào mà mình ko thấy có đoạn nào để server gửi lại bản đồ mới về cho client cả. Khi có 1 client mới vào, server phải có nhiệm vụ duyệt danh sách các client, ứng với mỗi client phải cập nhật lại client mới vào cho nó. Trong code của bạn mình ko thấy code nào thực hiện điều đó. Bạn chỉ có cập nhật bản đồ cho duy nhất client mới vào mà thôi. Những client trước đó ko được server phát lệnh cập nhật thì nó biết gì mà cập nhật ? Mình xem code và sửa lại nhưng đoạn code thực hiện cập nhật bản đồ cho client chỉ được bạn thực hiện duy nhất 1 lân lúc client mới đăng nhâp xong. Đoạn code đó bạn lại code quá rối nên mình cũng ko biết tách ra thế nào nữa. Mình nêu ra những lỗi sai đó, bạn tự xem sửa đi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    03 2010
    Bài viết
    72

    ở trong lớp Client Thread mình có đoạn thcapnhat = new Thread(new ThreadStart(CapNhat));
    là Server sẽ tạo thread mới liên tục gửi tình trạng bản đồ cho client rồi mà.
    bên client mình cũng tạo một thread liên tục lắng nghe cái thread cập nhật này.Nhưng rốt cuộc bên client không nghe được gì hết!
    Mình cũng thử cách thứ hai là tạo thread cho server gửi tình trạng bản đồ tới tất cả các client nhưng vẫn không được
    http://www.mediafire.com/?48nxnayd2djs7i6
    Cảm ơn bạn đã giúp

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định làm sao cho các client thay đổi màu cùng lúc!

    Vậy là bạn chưa hiểu ý mình nói rồi. Bạn có đoạn code đó nhưng nó chỉ làm duy nhất 1 lần rồi thôi. Bản chất của sự cập nhật là phải liên tục chứ ko phải là 1 lần lúc đầu. Mình đã sửa code của bạn lại rồi đó.
    Attached Files Attached Files
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    03 2010
    Bài viết
    72

    mình thật sự cảm ơn bạn rất nhiều,nhưng code bạn sửa có một chỗ mình không hiểu mong bạn giải đáp cho
    Thread thread = new Thread(CapNhat);
    thread.Start();

    sao không phải như vầy (mình sửa lại như vầy nó không chạy)
    Thread thread = new Thread(new ThreadStart(CapNhat));
    thread.Start();

  8. #8
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    http://www.albahari.com/threading/
    bookmark cái này vào mà nghiên cứu nè.
    p/s: ta là gấu

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi tto_1991 Xem bài viết
    mình thật sự cảm ơn bạn rất nhiều,nhưng code bạn sửa có một chỗ mình không hiểu mong bạn giải đáp cho
    Thread thread = new Thread(CapNhat);
    thread.Start();

    sao không phải như vầy (mình sửa lại như vầy nó không chạy)
    Thread thread = new Thread(new ThreadStart(CapNhat));
    thread.Start();
    Bạn sửa chỉ duy nhất chỗ đó hay còn sửa chỗ nào khác nữa ? Mình đã sửa chỗ đó và mình thấy chương trình vẫn chạy được. Về bản chất 2 cách đó là y chang nhau thôi nhưng cách đầu code ngắn hơn nên mình hay xài hơn.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  10. #10
    Ngày gia nhập
    03 2010
    Bài viết
    72

    Code:
      private void  XoaViTri(int x,int y)
            {
                 string s = "btt" + x.ToString() + "_" + y.ToString();
    
                foreach (Control a in this.Controls)
                {
                    if (a.Name.Equals(s) == true)
                        a.BackColor = Color.White;
                }
            }
    
    private void Client_KeyDown(object sender, KeyEventArgs e)
            {
                int u, v;
                if (e.KeyCode == Keys.Right)
                {
                    u = toi.toadox;
                    v = toi.toadoy;
                    label1.Text = u.ToString();
                    label2.Text = v.ToString();
    
                   //toi.toadoy= toi.toadoy + 1;
                    XoaViTri(u, v);   //xoa mau cua toa do o cu di
                    CapNhatBanDo(toi.toadox, toi.toadoy);  //lam cho button co toa do truyen vo la mau do
                    //HienThi();
                   
                }
                
            }
    Mình viết phương thức trên khi người dùng nhấn phím mũi tên phải thì ô màu đỏ di chuyển sang phải.Mình nghĩ chỉ cần là xóa màu ô vị trí cũ rồi đổi màu ô mới .Vậy mà khi bấm nó không di chuyển gì hết trơn.Bạn có thể nói cho mình biết phương thức trên mình có viết sai chỗ nào không

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

  1. Trả lời: 6
    Bài viết cuối: 28-06-2014, 12:02 PM
  2. ADO.NET Giải pháp nào để cập nhật dữ liệu server cùng lúc từ nhiều client?
    Gửi bởi thienduong584 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 04-04-2012, 10:45 AM
  3. ADO.NET Bị lỗi thực hiện câu lệnh update khi nhiều luồng cùng chạy câu lệnh cùng một lúc
    Gửi bởi tuandoi1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 20-07-2011, 06:51 PM
  4. Hỏi cách thay đổi cùng lúc nhiều biến khác nhau
    Gửi bởi dungtimtoinua2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 03-05-2010, 07:18 PM
  5. Lập trình âm thanh trên C# | Chạy cùng lúc 2 sound player trên cùng 1 form???
    Gửi bởi KingOfBlade trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 11-05-2009, 10:19 AM

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