Diocp学习笔记 5、注册客户端类 TIOCPCoderClientContext (TMyClientContext的引用)

在事例里TMyClientContext多处用到了self操作,或者Self.WriteObject(pvObject)操作,最开始不太明白,实际上是服务端在运行时注册了客户端类如下

FTcpServer.RegisterContextClass(TMyClientContext);  // 注册客户端Context

那么程序在接收到消息时,会创建一个客户端的类TMyClientContext,在此类下执行的函数。调用的变量实际就是TIOCPCoderClientContext,而SELF则代表此次连接客户端,
而通过SELF调用客户端连接类的事件属性等操作。

注意:在通过处理客户端时DoContextAction事件时,在此次操作内可以使用self方式直接操作,但一个客户端向另一个客户端操作时,则self代码的是第一个客户端,另一个客户端可以通过会话,或者以下的循环方侧得到

    Self.Owner.GetOnlineContextList(lvList);
    for i := 0 to lvList.Count - 1 do
    begin
      lvContext := TIOCPCoderClientContext(lvList[i]);
      if lvContext <> Self then
      begin
      //这里面的Self指的是这次向服务器发送信息的客户端,而LVCONTEXT则是遍历服务器当前记录已经连接的客户端
        lvContext.RemoteAddr ;//获得IP
      end;

当前也可以通过指的客户端键和会话获取

现在是TIOCPCoderClientContext的基本操作

一、获得信息

1》客户端IP

self.RemoteAddr;

2》端口

self.RemoteAddr;

使用的是通讯框架下面地址

https://download.csdn.net/download/z123191456/11021119

里面的diocp-v5-master\samples\ChatDEMO By 彩蛋 DEMO进行的学习。

猜你喜欢

转载自blog.csdn.net/z123191456/article/details/88584930