TcpSrv和TcpClient

來源:互聯網
上載者:User
#include <Winsock2.h>#include <stdio.h>void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );//載入Ws2_32.dllerr = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return;}if ( LOBYTE( wsaData.wVersion ) != 1 ||        HIBYTE( wsaData.wVersion ) != 1) {WSACleanup( );return;}SOCKET SocketSrv=socket(AF_INET,SOCK_STREAM,0 );//step1 建立通訊端    SOCKADDR_IN  AddrSrv;    AddrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//網路位元組序    AddrSrv.sin_family=AF_INET;AddrSrv.sin_port=htons(6000);//連接埠號碼兩個位元組bind(SocketSrv,(SOCKADDR *)&AddrSrv,sizeof(SOCKADDR));//step2 綁定到通訊端listen(SocketSrv,5);//step3 監聽串連請求 5為隊列長度    SOCKADDR_IN AddrClient;    int len=sizeof(SOCKADDR);//必須賦初值//伺服器端程式迴圈運行while(1){SOCKET  ScoketConn=accept(SocketSrv, (SOCKADDR*)&AddrClient, &len);//step4 接受請求 AddrClient接收串連請求方的資訊char SendBuf[100];sprintf(SendBuf,"Wellcome! Connect from %s Success!",inet_ntoa(AddrClient.sin_addr));send(ScoketConn,SendBuf,strlen(SendBuf)+1,0);//step5 發送資料用串連的通訊端 不能用處於監聽狀態的通訊端char RecvBuf[100];recv(ScoketConn,RecvBuf,100,0);//step5 接收資料printf("%s\n",RecvBuf);closesocket(ScoketConn);}//實際上還需做以下操作 但上述是死迴圈因此沒有執行下述操作    closesocket(SocketSrv);//關閉通訊端    WSACleanup();//終止庫引用}#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 SocketClient=socket(AF_INET,SOCK_STREAM,0 );//step1 建立通訊端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(SocketClient,(SOCKADDR *)&AddrSrv,sizeof(SOCKADDR));//step2 串連請求char RecvBuf[100];recv(SocketClient,RecvBuf,100,0);//接收伺服器資料printf("%s\n",RecvBuf);char sendbuf[100];sprintf(sendbuf,"this is from %s","linsheng");send(SocketClient,sendbuf,strlen(sendbuf)+1,0);//發送資料closesocket(SocketClient);//關閉通訊端 釋放資源WSACleanup();//終止通訊端庫的引用}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.