当前位置: 代码迷 >> 综合 >> clientServer01简单版
  详细解决方案

clientServer01简单版

热度:35   发布时间:2024-02-21 20:51:20.0

client01端

#define WIN32_LEAN_AND_MEAN
#include<windows.h>
#include<WinSock2.h>
#include<iostream>


#pragma comment(lib,"ws2_32.lib")//动态链接库
//可以在属性的链接库中添加

int main1_0(){
    //启动Windows Socket程序
    WORD ver = MAKEWORD(2, 2);
    WSADATA dat;
    WSAStartup(ver, &dat);

    //1、建立socket
    SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    // 2、连接服务器
    sockaddr_in _sin = {};
    _sin.sin_family = AF_INET;
    _sin.sin_port = htons(4567);//host to net unsigned short
    _sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    int ret = connect(sock, (sockaddr*)&_sin, sizeof(sockaddr_in));
    if (SOCKET_ERROR == ret)
        printf("绑定网络端口失败。。。");

    //3、接收服务器的信息
    char recvBuf[256] = {};
    int nlen=recv(sock, recvBuf, 256, 0);
    if (nlen > 0){
        printf("接收到的数据:%s\n", recvBuf);
    }
    

    // 4、关闭套接字
    closesocket(sock);


    WSACleanup();
    system("pause");
    return 0;
}

 

服务端

#define WIN32_LEAN_AND_MEAN
#include<windows.h>
#include<WinSock2.h>
#include<iostream>


#pragma comment(lib,"ws2_32.lib")//动态链接库
//可以在属性的链接库中添加

int main1_0(){
    //启动Windows Socket程序
    WORD ver = MAKEWORD(2,2);
    WSADATA dat;
    WSAStartup(ver,&dat);

    //1、建立socket
    SOCKET sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    // 2、绑定网络端口
    sockaddr_in _sin = {};
    _sin.sin_family = AF_INET;
    _sin.sin_port = htons(4567);//host to net unsigned short
    _sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");

    if (SOCKET_ERROR == bind(sock, (sockaddr*)&_sin, sizeof(sockaddr_in)))
        printf("绑定网络端口失败。。。");

    //3、listen 监听端口

    if (SOCKET_ERROR == listen(sock,5))
        printf("监听网络端口失败。。。");

    //4、accept 等待客户端连接
    sockaddr_in clientAddr = {};
    int nAddrlen = sizeof(sockaddr_in);
    SOCKET _cSocket = INVALID_SOCKET;


    while (true){

        _cSocket=accept(sock, (sockaddr*)&clientAddr, &nAddrlen);

        if (INVALID_SOCKET == _cSocket){
            printf("错误,接收到无效客户端。。。");
        }
        printf("新客户端加入:IP=%s\n", inet_ntoa(clientAddr.sin_addr));
        //5、send 向客户端发送消息
        char msgBuf[] = "hello...";
        send(_cSocket, msgBuf, strlen(msgBuf) + 1, 0);

    }

    // 6、关闭套接字
    closesocket(sock);


    WSACleanup();

    return 0;
}

  相关解决方案