windows下面的網路編程

來源:互聯網
上載者:User

標籤:網路   c語言   

用戶端的程式
#include "stdafx.h"#include <WINSOCK2.H>#include <stdio.h>#pragma  comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){    WORD sockVersion = MAKEWORD(2,2);    WSADATA data;     if(WSAStartup(sockVersion, &data) != 0)    {        return 0;    }    SOCKET sclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);    if(sclient == INVALID_SOCKET)    {        printf("invalid socket !");        return 0;    }    sockaddr_in serAddr;    serAddr.sin_family = AF_INET;    serAddr.sin_port = htons(8888);    serAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");     if (connect(sclient, (sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR)    {        printf("connect error !");        closesocket(sclient);        return 0;    }    char * sendData = "你好,TCP服務端,我是用戶端!\n";    send(sclient, sendData, strlen(sendData), 0);    char recData[255];    int ret = recv(sclient, recData, 255, 0);    if(ret > 0)    {        recData[ret] = 0x00;        printf(recData);    }    closesocket(sclient);    WSACleanup();    return 0;}

伺服器端的程式:
<pre name="code" class="objc">#include "stdafx.h"#include <stdio.h>#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){    //初始化WSA    WORD sockVersion = MAKEWORD(2,2);    WSADATA wsaData;    if(WSAStartup(sockVersion, &wsaData)!=0)    {        return 0;    }    //建立通訊端    SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);    if(slisten == INVALID_SOCKET)    {        printf("socket error !");        return 0;    }    //綁定IP和連接埠    sockaddr_in sin;    sin.sin_family = AF_INET;    sin.sin_port = htons(8888);    sin.sin_addr.S_un.S_addr = INADDR_ANY;     if(bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)    {        printf("bind error !");    }    //開始監聽    if(listen(slisten, 5) == SOCKET_ERROR)    {        printf("listen error !");        return 0;    }    //迴圈接收資料    SOCKET sClient;    sockaddr_in remoteAddr;    int nAddrlen = sizeof(remoteAddr);    char revData[255];     while (true)    {        printf("等待串連...\n");        sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);        if(sClient == INVALID_SOCKET)        {            printf("accept error !");            continue;        }        printf("接受到一個串連:%s \r\n", inet_ntoa(remoteAddr.sin_addr));                //接收資料        int ret = recv(sClient, revData, 255, 0);                if(ret > 0)        {            revData[ret] = 0x00;            printf(revData);        }        //發送資料        char * sendData = "你好,TCP用戶端!\n";        send(sClient, sendData, strlen(sendData), 0);        closesocket(sClient);    }        closesocket(slisten);    WSACleanup();    return 0;}




windows下面的網路編程

聯繫我們

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