Windows网络编程之(一)Socket阻塞模式(TCP和UDP)

本文介绍了Windows环境下使用Socket进行TCP和UDP通信的基本流程,包括Server和Client的步骤。TCP通信涉及创建Socket、bind、listen、accept、send/recv,而UDP通信则涉及创建Socket、bind、sendto/recvfrom。文章指出,这些接口为阻塞性,且Windows平台的Socket接口使用相对不便,需要调用WSAStartup等,作者计划进一步探讨Socket的异步IO解决方案。
摘要由CSDN通过智能技术生成

TCP通信

Server

#include <Winsock2.h>
#include <stdio.h>

static const int PORT = 7777;
static const int BUFFER_LENGTH = 128 ;

bool InitWSA() ;

int main()
{
    if(!InitWSA())
    {
        return -1 ;
    }

    SOCKET sockSrv = socket (AF_INET, SOCK_STREAM, 0) ;

    SOCKADDR_IN addrSrv ;
    addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_LOOPBACK) ;
    addrSrv.sin_family = AF_INET ;
    addrSrv.sin_port = htons(PORT) ;

    bind (sockSrv, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR)) ;

    listen (sockSrv, 1) ;

    SOCKADDR_IN addrClient ;
    int len = sizeof (addrClient) ;

    while (true)
    {
        SOCKET sockConn = accept(sockSrv, (SOCKADDR *)&addrClient, &len) ;

        char sendBuf[BUFFER_LENGTH] ;
        sprintf(sendBuf, "Hello, %s, This is Server.", inet_ntoa(addrClient.sin_addr)) ;

        send(sockConn, sendBuf, strlen(sendBuf) + 1, 0 ) ;

        char recvBuf[BUFFER_LENGTH] ;
        recv (sockConn, recvBuf, BUFFER_LENGTH, 0) ;
        printf("%s", recvBuf) ;
        closesocket(sockConn) ;
    }

    closesocket(sockSrv) ;
    WSACleanup () ;

    return 0 ;
}

bool InitWSA()
{
    WORD wVersio
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值