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

Đề tài: get IP from SOCKET in C++

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

    Post get IP from SOCKET in C++

    các huynh cho em hỏi, em đã Remote hàm send(SOCKET socket, char* data, int len, int flag) của thư viên ws2_32.dll, nhưng giờ em muốn biết được SOCKET này gửi dữ liêu đến địa chỉ IP nào. Em lập trình C#, giờ muốn tìm hiểu C++ mà khó quá, mong các huynh giúp đỡ.

  2. #2
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Trích dẫn Nguyên bản được gửi bởi phuongtk Xem bài viết
    các huynh cho em hỏi, em đã Remote hàm send(SOCKET socket, char* data, int len, int flag) của thư viên ws2_32.dll, nhưng giờ em muốn biết được SOCKET này gửi dữ liêu đến địa chỉ IP nào. Em lập trình C#, giờ muốn tìm hiểu C++ mà khó quá, mong các huynh giúp đỡ.
    C Code:
    1. //Nếu socket chưa kết nối thì trả về lỗi, trả về 0 thì thành công
    2. #include <winsock2.h>
    3. #include <stdio.h>
    4. typedef struct sockpair
    5. {
    6.     unsigned short port;   //Cổng kết nối
    7.     char           ip[16];  //ip của máy đích
    8. }sockpair_t;
    9. int socket_get_ip_port(SOCKET sock, sockpair_t* address)
    10. {
    11.     unsigned char* p;
    12.     int result;
    13.     unsigned long ip;
    14.     sockaddr_in addr;
    15.     int len = sizeof(addr);
    16.  
    17.     result = getpeername(sock, (struct sockaddr *)&addr, &len);
    18.     if(result < 0)
    19.         return -1; //GetLastError(); thất bại
    20.     address->port = addr.sin_port;
    21.     ip = (unsigned long)addr.sin_addr.s_addr;
    22.     p = (unsigned char *)&ip;
    23.     sprintf(address->ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
    24.     return 0; //OK thành công
    25. }
    Đã được chỉnh sửa lần cuối bởi namdq2k : 11-10-2011 lúc 12:18 AM.

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

    rất cảm ơn namdq2k, mình đã làm được rùi, làm xong bước này mình lại gặp một vấn đề nữa cũng rất nan giải:
    mình đã remote được hàm send() và đã copy lại socket và data tại đây, nhưng khi mình dùng socket này để send() lại data đó lại không thành công. Mình nghĩ sau khi gửi xong socket này đã bị đóng lại, vậy có cách nào để open() lại socket này không??????? Mình dùng "WPE PRO" lại send() thành công, có phải "WPE PRO" đã open lại socket này hay là cách nào khác vậy? mong được chỉ giáo

  4. #4
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Trích dẫn Nguyên bản được gửi bởi phuongtk Xem bài viết
    mình đã remote được hàm send() và đã copy lại socket và data tại đây, nhưng khi mình dùng socket này để send() lại data đó lại không thành công. Mình nghĩ sau khi gửi xong socket này đã bị đóng lại, vậy có cách nào để open() lại socket này không??????? Mình dùng "WPE PRO" lại send() thành công, có phải "WPE PRO" đã open lại socket này hay là cách nào khác vậy? mong được chỉ giáo
    Tớ chẳng hiểu cậu đang trình bày cái gì. Sorry đầu óc tớ chậm tiêu.

    Remote được hàm send() nghĩa là gì vậy? WPE PRO là cái gì vậy? Open lại socket là cái gì vậy?

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

  1. Lập trình Socket với C# <Socket Programming>
    Gửi bởi Xcross87 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 10
    Bài viết cuối: 05-12-2012, 04:16 PM
  2. Kỹ thuật C socket ( sys/socket.h) và GET (sau khi telnet + tên host)
    Gửi bởi tuanc trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 14
    Bài viết cuối: 22-08-2012, 04:24 PM
  3. Lập trình Socket dùng Thread khác gì so với dùng Socket bất đồng bộ?
    Gửi bởi LoveCShap trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 25-03-2012, 03:37 PM
  4. Không sử dụng được mảng socket (socket array)
    Gửi bởi XbikeNR125 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 22-04-2011, 10:25 PM
  5. cho mình hỏi về socket
    Gửi bởi tuyetton trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 20-11-2007, 12:06 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