小弟是初学者,现在想请教各位大虾一个网络通信的问题

royitonade 2007-04-07 03:05:18
学校要做这样的一个东西,但是小弟做不出来,不知道该怎么办

服务端,一个ServerSocket
客户端,一个ClientSocket

开启服务端

然后开启客户端,服务端向客户端报告在线,和PING值,但是小弟不知道怎么弄
两个程序是分开的,还望高手指点,谢谢了
...全文
224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
n27741 2007-04-10
  • 打赏
  • 举报
回复
是这样的...
首先1旦客户端连接到服务器,服务器会获取到客户端socket对象 表现形式为 TCustomClientSocket这个类的对象,你看看OnRead和OnClient 这两个方法里面,都有这个TCustomClientSocket *参数 说明客户端触发这两个事件的时候,将clientSocket这个类对象发送给了服务器

那么很显然的,如果有客户端连接到服务器,你就获得到一个TCustomClientSocket对象,然后用vector或者list对象保存这些TCustomClientSocket 这样你就能够遍历list向所有连接到服务器的客户端发送消息了

然后 你必须考虑制定发送消息协议,意思就是说 客户端发送给服务器的东西 不应该是单纯的字符串
而应该是一个类的对象,或者应该说是结构体更合理些 使用SendBuf方法

结合上面2点,你完全可以做出 遍历在线用户这个功能

ping的计算 我不知道socket有没有一个方法或者属性来计算这个

但是应该可以这么写
你向服务器发送一个32字节或者64字节的数据包 比如一个char[32]

发送时候开始计时time1

服务器接收到之后立即反馈客户端一个响应
客户端接收到回执time2

time2-time1应该就是ping的值了

如果网络不通
那么就是time2>10000ms的时候做个判断了

写的有点乱:)


lsyxp17 2007-04-09
  • 打赏
  • 举报
回复
mark

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧