當前位置:編程學習大全網 - 編程軟體 - 創建原始套接字失敗,是什麽原因,10043錯誤

創建原始套接字失敗,是什麽原因,10043錯誤

1.TCP流式套接字的編程步驟

在使用之前須鏈接庫函數:工程->設置->Link->輸入ws2_32.lib,OK!

SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//創建套接字(socket)。

SOCKADDR_IN addrSrv;

addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//轉換Unsigned short為網絡字節序的格式

addrSrv.sin_family=AF_INET;

addrSrv.sin_port=htons(6000);

客戶端代碼如下:

#include <Winsock2.h>

#include <stdio.h>

void main()

{

WORD wVersionRequested;

WSADATA wsaData;

int err;

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, &wsaData );加載套接字庫

if ( err != 0 ) {

return;

}

if ( LOBYTE( wsaData.wVersion ) != 1 ||

HIBYTE( wsaData.wVersion ) != 1 ) {

WSACleanup()( );

return;

}

SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);創建套接字(socket)。

SOCKADDR_IN addrSrv;

addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

addrSrv.sin_family=AF_INET;

addrSrv.sin_port=htons(6000);

connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));向服務器發出連接請求(connect)。

char recvBuf[100];和服務器端進行通信(send/recv)。

recv(sockClient,recvBuf,100,0);

printf("%s\n",recvBuf);

send(sockClient,"This is lisi",strlen("This is lisi")+1,0);

closesocket(sockClient);關閉套接字。

WSACleanup()();//必須調用這個函數清除參數

}

  • 上一篇:Linux驅動開發詳解 和 嵌入式linux應用開發完全手冊 哪本書好些
  • 下一篇:我想知道可編程邏輯控制器的編程軟件好不好學呢?有什麽簡便的學習方法沒有?
  • copyright 2024編程學習大全網