kcp icon indicating copy to clipboard operation
kcp copied to clipboard

关于服务端和多客户端的问题

Open thinbug opened this issue 2 years ago • 7 comments

我想实现一个类似聊天的程序,服务端是否这样来实现,有点模糊。

1,是否需要对应每个客户端都需要创建一个kcp(因为conv需要匹配) 2,如果socket收到数据,我如何对应相应的客户端,用IP和端口吗

例如:服务端一个udp socket,bind一个端口 客户端发送消息,在服务端会对每个第一次来消息的客户端连接都创建一个kcp(因为conv需要匹配),我在socket收到消息根据remote ip和port来判断对应的conv(是否合适),用这个conv的kcp来input,不知道这样使用有没有问题?

thinbug avatar Oct 07 '23 14:10 thinbug

聊天机器人无实时性要求,请用 TCP

skywind3000 avatar Oct 07 '23 17:10 skywind3000

单纯的学习实践一下,后面可能做游戏方面的。

thinbug avatar Oct 08 '23 01:10 thinbug

  1. 是的,一条连接一个 kcp 对象。
  2. 用 socket 编号去对应啊。

skywind3000 avatar Oct 08 '23 03:10 skywind3000

感谢skywin3000的回复,我有点小白,第2点没看懂 int recvfrom(int sockfd,void *buf,int len,unsigned int lags,struct sockaddr *from,int *fromlen); 我用socket接收数据,只有一个from,你说的编号是什么?我服务端只有一个udpscoket。

thinbug avatar Oct 08 '23 10:10 thinbug

那靠包头的 conv 区别用户,这个 conv 由你服务端分配,客户端带上来匹配,然后检测来源端口和地址是否匹配。

skywind3000 avatar Oct 08 '23 16:10 skywind3000

明白,感谢

thinbug avatar Oct 09 '23 01:10 thinbug