客户端和单台服务器多个程序建立多个连接如何保存并关联到一个用户?

学了一段时间tcp通信,用C#做了简单的聊天,一直用dictionary存储的连接类(包含存储userid,socket等信息),userid为key

多个程序提供不同的服务,后续更新:全部放Redis了

tcp分为长连接和短连接。短连接不用保持端口的。
另外qq主要使用p2p方式通讯,消息不经过服务器中转的。

不是很明白你的问题, 建立多个连接? 你的意思是userid是相同的,一个key不能对应多个value? 你dictionary是个list不可以吗?
后面又说道多个服务器程序又是什么意思?

一台服务器多个服务器程序,监听端口不同,我觉得应该不是
答:服务器可以监听某个端口,可以响应多个客户端的连接,包括同一个IP的多个连接

一台服务器多个服务器程序,监听端口不同,我觉得应该不是
答:一个服务器程序只能监听一个不同的端口,也就是说同一个端口是不能被多个服务器程序监听的