手搓多人聊天室项目

前文讲解了TCP/IP协议栈,今天就通过多人聊天室这个小项目进一步对网络编程有一个了解

项目主要实现的功能:

分别实现服务器和客户端

服务器功能:

(1)监听指定端口,接受多个客户端的连接

(2)每个客户端连接后,服务器会要求客户端提供昵称

(3)服务器将每个客户端发送的消息广播给所有客户端

(4)当客户端连接或断开时,通知所有客户端

客户端功能:

(1)发送消息给服务器,并接收来自其他客户端的消息

(2)同时处理用户输入和接收消息(多线程)

开发环境:vscode(windows)

最终效果如下:

图片

大致流程如下

    图片

    服务器端

    1.在 Windows 系统中,网络编程依赖于 Winsock 库,因此先对库进行初始化

    WSADATA wsaData;
    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) 
    {
        cout<< "WSAStartup 失败" << endl;
        return -1;
    }

    2.创建socket,并设置端口等参数

    socket参数中AF_INET表示基于IPv4网络通信

    SOCK_STREAM:面向连接的流式传输

    IPPROTO_TCP:使用TCP协议

    ​​​​​​​
    
    // 创建 socket
    SOCKET server_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    // 设置服务器地址
    sockaddr_in ser
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值