我正在编写一个服务器应用程序,它接受来自不同程序/协议的TCP连接,但我需要将其他信息传递给我的服务器。我正在考虑通过正在使用的子域传递此信息。换句话说,当连接到我的服务器时,使用somedata.example.com
这样的地址somedata
将是我需要的额外信息,我的DNS会将*.example.com
指向我的服务器。是否可以获取客户端用于连接到我的服务器的域/子域?
欢迎代码示例,在Go中会更好。
谢谢。
答案 0 :(得分:1)
TCP连接在概念上只是每个方向上的字节流。没有一种方法可以传达具有子域的主机名。如果需要,大多数协议都有自己的通信方式。例子:
HOST
标题。如果您使用的是某些标准协议,则应使用其内置元数据功能。
如果您正在构建自己的自定义二进制协议(如果可以避免的话,我就不会这样做),您可以考虑以某种格式添加一些标题信息。也许length|desired-service-name|other-data
的标准化标题就足够了。如果客户端在新连接开始时发送类似的内容,则服务器可以读取它,并适当地分派连接。