C/C++使用socket实现server和client

本文提供了一个简单的TCP客户端与服务器通信的示例代码。服务器端在本地234端口监听并响应客户端连接请求,发送“hello”消息。客户端连接到服务器,接收并打印服务器发来的消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Server代码

#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib,"ws2_32")


int     main(int argc,char *argv[])
{

    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,2),&wsaData);//初始化

    SOCKET  s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);

    sockaddr_in sockaddr;
    sockaddr.sin_family = PF_INET;
    sockaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    sockaddr.sin_port = htons(234);

    bind(s,(const struct sockaddr *)&sockaddr,sizeof(sockaddr));
    //在本地绑定234端口
    listen(s,1);//开始监听

    //wait for connection
    SOCKET  client;
    int nsize = sizeof(SOCKADDR);
    SOCKADDR    clientAddr;
    printf("wait for connection...\n");
    client = accept(s,&clientAddr,&nsize);//等待客户端连接
    //start send message
    printf("start to send msg...\n");
    send(client,"hello",5,NULL);
    closesocket(client);
    closesocket(s);

    WSACleanup();
    return 0;
}

Client代码

#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib,"ws2_32")


int     main(int argc,char *argv[])
{

    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,2),&wsaData);//初始化

    SOCKET  s = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);

    sockaddr_in sockaddr;
    sockaddr.sin_family = PF_INET;
    sockaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    sockaddr.sin_port = htons(234);//设置要连接的IP和端口

    connect(s,(SOCKADDR*)&sockaddr,sizeof(SOCKADDR));//tcp连接
    char    buffer[200] = {0};
    recv(s,buffer,200,NULL);//

    printf("response:%s\n",buffer);
    WSACleanup();
    return 0;
}

这里写图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值