Network Interface Debugger

Source: Internet
Author: User

Simulate Serial debugger, in order to facilitate network debugging, which friends like e-mail: songkun607@yahoo.com.cn, the main function is to connect to the client connection, send and receive data, you can automatically obtain the local IP address, it can be displayed in ASCII or hexadecimal format. The following is a service class I wrote, mainly for SDK programming ///// wsaserver. h ///////////////// # include <winsock2.h> # include <windows. h> # pragma comment (Lib, "ws2_32.lib") # define wm_socket wm_user + 1 class wsaserver {public: wsaserver ();~ Wsaserver (); int setserver (hwnd, char * IP, int port); int wsaaccept (hwnd); int wsarecv (socket clientfrm, char * buff, int Len ); int wsasend (char * buff); int setclient (socket clientfrm); int getlocalip (char far * Name, char far * IP); Private:/* wsaasyncselect handle, parameter settings */wsadata WSA; socket m_server, m_client; sockaddr_in serveraddr, clientaddr ;}; /// // wsaserver. CPP /////////////////// /// // # Include "wsaserver. H "wsaserver: wsaserver () {wsastartup (makeword (), & WSA);} wsaserver ::~ Wsaserver () {wsacleanup ();}/* Name: setserver function: set IP and port parameters: hwnd window handle, IP server IP, Port port number */INT wsaserver :: setserver (hwnd, char * IP, int port) {m_server = socket (af_inet, sock_stream, ipproto_tcp); serveraddr. sin_family = af_inet; If (strcmp (IP, "") = 1) serveraddr. sin_addr.s_un.s_addr = htonl (inaddr_any); else serveraddr. sin_addr.s_un.s_addr = inet_addr (IP); serveraddr. sin_port = htons (port); BIND (m_server, (psocka DDR) & serveraddr, sizeof (serveraddr); wsaasyncselect (m_server, hwnd, wm_socket, fd_accept | fd_close); Listen (m_server, 5); return 1;}/* Name: wsaaccept: receives the client's successive parameters: hwnd window handle, socket */INT wsaserver: wsaaccept (hwnd) {int caddrlen; caddrlen = sizeof (clientaddr ); m_client = accept (m_server, (psockaddr) & clientaddr, & caddrlen); wsaasyncselect (m_client, hwnd, wm_socket, fd_read | fd_write | fd_close); retu RN 1;}/* Name: wsarecv function: receives data from the client. Parameter: client socket handle */INT wsaserver: wsarecv (socket clientfrm, char * buff, int Len) {int ret; ret = Recv (socket) clientfrm, buff, Len, 0); buff [RET] = '/0'; return ret;}/* Name: wsasend function: send data parameters: data cache buff */INT wsaserver: wsasend (char * buff) {int ret; ret = Send (m_client, buff, strlen (buff ), 0); return 1;}/* Name: setclient function: Get the current client handle parameter: clientfrm handle */INT wsaserver: setclient (socket clien Tfrm) {m_client = clientfrm; return 1;}/* Name: getlocalip function: Get local name and IP parameter: name saved local name, IP saved local IP */INT wsaserver:: getlocalip (char far * Name, char far * IP) {hostent * hostinfo; If (gethostname (name, sizeof (name) = 0) {If (hostinfo = gethostbyname (name ))! = NULL) {strcpy (IP, inet_ntoa (* (struct in_addr *) * hostinfo-> h_addr_list); return 1 ;}} return 0 ;}

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.