網路介面調試器

來源:互聯網
上載者:User
 

類比串口調試器,為了方便網路調試作的,哪位朋友喜歡的話EMAIL:songkun607@yahoo.com.cn,主要功能是連收客戶機的串連,發送和接收資料,可以自動擷取本地IP,可以ASCII和十六進位的顯示。以下是我寫的一個服務類,主要針對SDK編程///////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 hWnd,char *IP,int port);       int    WsaAccept(HWND 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 控制代碼,參數設定*/       WSADATA            wsa;       SOCKET        m_server,m_client;       SOCKADDR_IN ServerAddr,ClientAddr;};///////////////////////wsaserver.cpp//////////////////////////////#include "wsaserver.h" WsaServer::WsaServer(){       WSAStartup(MAKEWORD(2,2), &wsa);} WsaServer::~WsaServer(){       WSACleanup( );}/*名稱:SetServer 功能:設定IP和連接埠 參數:hWnd視窗控制代碼,IP伺服器IP,port連接埠號碼*/int WsaServer::SetServer(HWND 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, (PSOCKADDR) &ServerAddr,sizeof(ServerAddr));       WSAAsyncSelect(m_server,hWnd,WM_SOCKET,FD_ACCEPT|FD_CLOSE);       listen(m_server, 5);       return 1;}/*名稱:WsaAccept 功能:接收用戶端的接連 參數:hWnd視窗控制代碼,clietnfrm客戶區的socket*/int WsaServer::WsaAccept(HWND 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);       return 1;}/*名稱:WsaRecv 功能:接收用戶端發來的資料 參數:客戶區socket控制代碼*/int WsaServer::WsaRecv(SOCKET clientfrm,char *buff,int len){       int           ret;        ret=recv((SOCKET)clientfrm,buff,len,0);       buff[ret]='/0';       return ret;}/*名稱:WsaSend 功能:發送資料 參數:資料緩衝buff*/int WsaServer::WsaSend(char *buff){       int           ret;        ret=send(m_client,buff,strlen(buff),0);       return 1;}/*名稱:SetClient 功能:擷取當前client控制代碼 參數:clientfrm控制代碼*/int WsaServer::SetClient(SOCKET clientfrm){       m_client=clientfrm;       return 1;}/*名稱:GetLocalIP 功能:擷取本機名和IP 參數:name 儲存的本機名,IP儲存的本機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;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.