NC命令行作为服务端、客户端以及win32 套接字程序的简单连接测试
首先要下載nc命令行工具;非win自帶;
下載地址;
https://eternallybored.org/misc/netcat/netcat-win32-1.12.zip
如下命令,-l -p ,是啟動nc作為服務端監聽某個端口;
如下命令,是以nc作為客戶端;發送一些字符,服務端沒收到;
重新啟動一個cmd,nc作為服務端再運行,監聽9003端口;這次好了;客戶端發的都收到;
如果telnet到9003;
進入telnet窗口以后,隨便輸入些字符,nc服務端也顯示;telnet這邊不顯示輸入的字符;
下面是一個tcp測試小工具;監聽9007;
nc作為客戶端,如下圖;發送一些字符到9007;
此工具收到的情況如下;最后一個0A是回車;
還有一個UDP的接收端測試工具;等有時間把這兩個小工具上傳;
當前是win10;下面用CFree 5.0,做一個簡單socket的客戶端發送程序;發一串字符,看nc作為服務端能否收到;
新建一個簡單窗口工程;
這是一個win32程序,沒有窗口;啟動以后先初始化套接字庫,然后用socket對9007端口發送一個字符串,然后清理套接字退出;
#include <windows.h> #include <Winsock2.h>int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {/* TODO: Place code here.*/WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return 1;}if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( );return 1; }struct sockaddr_in sco_addr;int len = sizeof(SOCKADDR);char buffer[100] = {"welcome to china !!!"};sco_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");sco_addr.sin_family = AF_INET;sco_addr.sin_port = htons(9007);SOCKET scoke_client = socket(AF_INET,SOCK_STREAM,0);while (1){connect(scoke_client,(SOCKADDR*)&sco_addr,len);send(scoke_client,buffer,100,0);closesocket(scoke_client);}WSACleanup();return 0; }找到CFree的如下庫文件;
刪去多余字符,如下,才能構建通過;
如果不做此設置,對應的C語句是:#pragma comment(lib,"ws2_32.lib")
先啟動nc作為服務器監聽9007;
構建成功以后,運行程序;結果如下;
程序一閃而過,只測試一次;更多功能自己添加;
總結
以上是生活随笔為你收集整理的NC命令行作为服务端、客户端以及win32 套接字程序的简单连接测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows驱动开发 - 派遣函数
- 下一篇: Windows C/C++ 语言菜单基本