Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Kiểu Dữ Liệu Tương đương giữa 2 ngôn ngữ VB và C++

    Em có xem qua bài viết ở đây

    với hàm bên dưới em không hiểu cái biến Sock có kiểu dữ liệu gì vậy( trong VB) ???
    Mặc dù tác giả đã nói

    Sau đó về lại Form1, gắn vào đó 1 đối tượng winsock, đặt tên gì cũng được (trong bài này đặt là Sock)
    Cũng cần nói sơ qua về quá trình đăng nhập, gởi nhận tin nhắn trên cơ sở Y! Protocol
    Mặc dù em có down source về nhưng không thấy Biến Sock đó được khai báo ở đâu cả
    Mã:
    Public Function SendPacket(lngCommand As Long, strStatus As String, strData As String) 'send a packet
       
        If Sock.State <> sckConnected Then Exit Function
        Sock.SendData "YMSG" & _
        ChrH("00 0D 00 00") & _
        Word(Len(strData)) & Word(lngCommand) & _
        strStatus & strSessionID & _
        strData
    End Function

    cho em hỏi là biến Sock
    đó nếu chuyển sang C++ thì sẽ là kiểu dữ liệu gì ???

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    sock bên VC hơi khác với sock bên VB 1 chút [IMG]images/smilies/biggrin.png[/IMG]. Để định nghĩa 1 socket bên VC bạn có thể làm như sau:

    Mã:
    SOCKET MySock
    Sau đó là khởi tạo

    Mã:
    MySock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    Trên đây chỉ là ví dụ thôi
    Bên VB thì bạn có thể dùng Sock.SendData nhưng bên VC thì ko đc mà bạn phải dùng các hàm API để làm việc với socket ví dụ hàm gửi thông tin đi:

    Mã:
    send(/*tham số*/);

  3. #3
    sock đó là 1 control nho nhỏ, nằm ở trên form. em chưa có điều kiện dơn src về xem thử, nhưng nếu trên form anh ko thấy, anh hãy thử kéo rộng form ra xem có ko. hoặc nếu kốc nữa thì có lẽ có 1 khả năng duy nhất: anh xài vb portable nên ko thấy đc cái control này :P

  4. #4

    sock bên VC hơi khác với sock bên VB 1 chút . Để định nghĩa 1 socket bên VC bạn có thể làm như sau:
    em có thử lên MSDN xem qua kiểu dữ liệu SOCKET thấy có class
    http://msdn.microsoft.com/en-us/libr...8e(VS.80).aspx

    và trong class đó có hàm Send nhưng không rõ có phải hàm tương đương với bên VB hay không,thêm nữa,cái hàm State của VB thì bên VC không thấy có

    Call this member function to send data on a connected socket.


    virtual int Send(
    const void* lpBuf,
    int nBufLen,
    int nFlags = 0
    );

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    À, đây là MFC rồi, mình đang nói về WinAPI cơ, còn cái hàm Send trong MFC thì các tham số của nó có ý nghĩa như sau:
    Mã:
    virtual int Send(const void* lpBuf,int nBufLen,int nFlags = 0);
    Trong đó:
    lpBuf: con trỏ đến chuỗi cần gửi
    nBufLen: Độ dài của chuỗi cần gửi
    nFlags: Có thể là MSG_DONTROUTE hoặc MSG_OOB nhưng mặc định cứ để nó là 0 đi [IMG]images/smilies/smile.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    vậy hàm State của VB thì trên VC++ nó là gì thía [IMG]images/smilies/biggrin.png[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hình như bên VB thì State chỉ là 1 biến của Winsock Control để kiểm tra xem Winsock đã kết nối chưa thì phải. Bên VC thì bạn cũng có thể kiểm tra xem nó đã kết nối chưa hay ngắt kết nối rồi nhưng đầu tiên thì hãy đọc cái này đã: http://forums.congdongcviet.com/show...hlight=winsock

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •