TCP服务器/客户端

本文提供了一个简单的TCP客户端和服务端的实现示例,使用Winsock库在Windows环境下进行开发。客户端向服务端发送消息,服务端接收并打印该消息。

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

TCP客户端源程序
#include   <stdio.h>
#include   <winsock2.h>
#pragma   comment(lib,   "WS2_32.lib")

#define   BUF_SIZE         1024
#define   SERVER_IP       "127.0.0.1"
#define   SERVER_PORT   5678

int   main(int   argc,   char*   argv)
{
        WSADATA   wsaData;
        SOCKADDR_IN   serverAddr;
        SOCKET   socketC;
        char   sendbuf[BUF_SIZE]   =   "Hello   TCP   World!";

        WSAStartup(MAKEWORD(1,1),   &wsaData);

        socketC   =   socket(AF_INET,   SOCK_STREAM,   IPPROTO_TCP);

        serverAddr.sin_family   =   AF_INET;
        serverAddr.sin_port   =   htons(SERVER_PORT);
        serverAddr.sin_addr.s_addr   =   inet_addr(SERVER_IP);

        connect(socketC,   (SOCKADDR*)&serverAddr,   sizeof(serverAddr));

        send(socketC,   sendbuf,sizeof(sendbuf),   0);

        closesocket(socketC);

        WSACleanup();

        return 0:
}


TCP服务器端源程序
#include   <stdio.h>
#include   <winsock2.h>
#pragma   comment(lib,   "WS2_32.lib")

#define   BUF_SIZE         1024
#define   SERVER_IP       "127.0.0.1"
#define   SERVER_PORT   5678

int   main(int   argc,   char**   argv)
{
        WSADATA   wsaData;
        SOCKET     socketL;     //   socket   for   listening
        SOCKET     socketC;     //   socket   for   Communication
        SOCKADDR_IN   serverAddr;
        int   nRet   =   -1;
        char   recvbuf[BUF_SIZE];

        WSAStartup(MAKEWORD(1,1),   &wsaData);

        socketL   =   socket(AF_INET,   SOCK_STREAM,   IPPROTO_TCP);

        serverAddr.sin_family             =   AF_INET;
        serverAddr.sin_port                 =   htons(SERVER_PORT);
        serverAddr.sin_addr.s_addr   =   htonl(INADDR_ANY);

        bind(socketL,   (SOCKADDR*)&serverAddr,   sizeof(serverAddr));

        listen(socketL,   5);

        socketC   =   accept(socketL,   NULL,   NULL);
        if   (socketC   !=   INVALID_SOCKET)
        {
                nRet   =   recv(socketC,   recvbuf,   sizeof(recvbuf),   0);
                if   (nRet   >   0)
                        printf("%s   ",   recvbuf);
        }

        closesocket(socketC);
        closesocket(socketL);

        WSACleanup();

       return   0;

 

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值