Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: ko hiện lên form khi lập trình socket?

  1. #1
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Wink ko hiện lên form khi lập trình socket?

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.Sockets;
    using System.Net;
    
    namespace WindowsFormsApplication8
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint ie = new IPEndPoint(IPAddress.Any, 9000);
                s.Bind(ie);
                s.Listen(10);
                Socket sc = s.Accept();
                byte[] data = new byte[1024];
                data = Encoding.ASCII.GetBytes("Chao Client");
                sc.Send(data, data.Length, SocketFlags.None);
                while (true)
                {
                    string st;
                    byte[] dl = new byte[1024];
                    int k = sc.Receive(dl);
                    st = Encoding.ASCII.GetString(dl, 0, k);
                    if (st.ToUpper().Equals("QUIT"))
                        break;
                    MessageBox.Show(st);
                    st = st.ToUpper();
                    dl = new byte[1024];
                    dl = Encoding.ASCII.GetBytes(st);
                    sc.Send(dl, dl.Length, SocketFlags.None);
                }
                sc.Close();
                s.Close();
            }
        }
    }
    mình làm với console thì chạy được , nhưng làm với FORM thì chả hiện lên cái gì hết .. nhưng mình biết nó vẫn đang hoạt động . có cao nhân nào giúp mình khắc phục nó ko . cảm ơn rất rất nhiều
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    chắc là tại vì chưa có client connect đó, thử bỏ vào try catch xem nao

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Trích dẫn Nguyên bản được gửi bởi kenturo Xem bài viết
    chắc là tại vì chưa có client connect đó, thử bỏ vào try catch xem nao
    mình đã thử cho client kết nối , nhưng khi client gửi dữ liệu lên sv thì form hiện lên , khi client ko gửi dữ liệu thì sv ở trạng thái not responding .
    mình đang làm cái chat giữa sever và client. chat thì chat được mà sv cứ ở trạng thái not responding nên ko viết được gì vào form đó cả , chỉ có mỗi client độc thoại thôi . mình dùng win 7
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

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

    Không biết gì về socket, nhưng thiết nghĩ ở form_load mà viết hàm xử lý nhiều vậy, lại còn liên quan đến network thì biết bao giờ mới chạy xong form_load để hiện form lên?
    p/s: ta là gấu

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

    Mặc định hello

    đây là bài mình làm, mới viết server tới client và ngược lại thôi chứ chưa viết client qua client. Sorry nếu ko giúp dc. Tại mình mới học xong môn này
    Attached Files Attached Files

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    17

    Mặc định ko hiện lên form khi lập trình socket?

    Bạn ơi bỏ xử lý ra khỏi formload đi. code thế kia là do server chưa nhận client ~> form cũng ko load

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

    Code của bạn rất ko ổn. Socket chạy dạn sync nó sẽ làm đứng chương trình cho đến khi có sự kiện socket mà nó mong muốn xảy ra. Do đó hàm form_load ko thể trả về ngay được. Mà hàm Form_Load chưa trả về thì form cũng ko thể hiện lên được.
    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.

  8. #8
    Ngày gia nhập
    04 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    57

    Theo mình thì bạn nên đọc lại cho hiểu và xem lại các ví dụ trong ebook lập trình mạng với socket ( mình chắc là bạn đang đọc ebook này ).
    Như bài trên của bạn thì nên dùng 1 thread để đảm nhiệm việc nhận dl nữa. Chỉ đưa các câu lệnh tạo socket,lắng nghe kết nối, thread nhận dl vào Form_load thôi. Mình có demo làm lâu rùi, bài chat như của bạn thuộc folder Chat_WF trên cửa sổ Solution Explore nhé, có 2 form Server và client, ban đầu cho server listen trc, rùi cho client connect sau -> Chat thoải mái
    Attached Files Attached Files

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

  1. ADO.NET Làm thế nào để khi Form load lên thì nhạc bắt đầu hát cho đến khi form thoát thì thôi
    Gửi bởi huuphat trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 15-07-2012, 10:29 AM
  2. Show form lên trên các form đang mở trong C#?
    Gửi bởi dotritiep trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 20-09-2011, 10:14 AM
  3. Graphic Có thể gọi form con đè lên 1 panel của form cha không ?
    Gửi bởi luxubu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 20-05-2011, 10:15 PM
  4. Khi Close Form bằng nút X trên form hiện lên mesage?
    Gửi bởi harleydavidsons trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 16
    Bài viết cuối: 15-04-2011, 10:53 AM
  5. Lấy biến của form 1 show lên form 2
    Gửi bởi AWM trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 24-08-2009, 05:25 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