NND 那个聊天室的基本结构设计完了

服务器:

接受到消息然后然后广播给所有的用户

定义一个结构保存所有的在线SOCKET

采用UDP通信

转发所有消息并显示于其它的客户端中

客户端下线或断开连接发送消息给服务器端,服务器删除其SOCKET

定义一下数据包结构

struct MessageData    //数据包的结构

{

       int iMessageType;

       char szNickName[11];

       char szRecvBuffer[512];

}*RecvBuffer; iMessageType==0表示下线删除其Socket节点,

iMessageType==1表示上线 SOCKET库中追加新SOCKET

iMessageType==2 表示修改昵称,根据其SOCKET修改昵称

iMessageType==3的时候刷新在线列表,返回昵称给该客户端

iMessageType==4表示群发消息 遍历整个链表

保存在线SOCKET和昵称的结构

class SocketOnlineNode

{

public:

       friend COnlineSocketChain;//设置为友员

private:

       SocketOnlineNode* m_Next;//指向下一个节点

       char m_szNickName[11];//客户端的昵称

       SOCKET m_ClientSocket;//保留对方的socket

};

class COnlineSocketChain

{

public:

       COnlineSocketChain();

    ~ COnlineSocketChain();

       BOOL    AddSocket(char*,SOCKET);//用户登陆时保存其SOCKET

       char*  FindSocket(SOCKET);//更具ID查找其SOCKET

       BOOL    DeleteSocket(SOCKET);//用户下线删去其SOCKET

private:

       SocketOnlineNode* m_FirstNode;//指向第一个节点的指针

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值