如何使用套接字编程定义客户端服务器并将数据库传递给 C# 中的客户端

Posted

技术标签:

【中文标题】如何使用套接字编程定义客户端服务器并将数据库传递给 C# 中的客户端【英文标题】:How to define client server using socket programming and pass database to client in C# 【发布时间】:2022-01-03 14:04:26 【问题描述】:

我想构建一个套接字 (TCP) 客户端和服务器。这里的客户数量最多可以是两台或三台机器。现在我将定义服务器,当客户端请求套接字服务器获取数据时,它将调用主数据库(托管)并获取数据给客户端。每次客户端机器打开时,它都会调用本地套接字服务器从数据库中获取数据。在不使用任何第三方库服务的情况下,我需要在 C#、.Net 框架中做的所有事情。那么这里如何定义该基础架构。

【问题讨论】:

就目前而言,这个问题对于堆栈溢出来说可能过于宽泛。您基本上是要求我们根据您声明的要求编写您的客户端和服务器,但正如Breaking down "too broad"/"needs more focus" and trying to understand it 中所述,此类问题超出了本论坛的范围。请查看How to Ask 和codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question,了解可能在此处得到解答的问题。 【参考方案1】:

我不确定您在阅读说明后要问什么,但是您可以使用 system.net.sockets 来创建可以使用 TCP 相互连接的客户端和服务器。 希望这会有所帮助。

【讨论】:

是的。我使用 TCP 侦听器建立了连接。现在我想将数据(数据库数据)从 TCP 服务器发送到 TCP 客户端 最简单的方法是将对象转换为字节。之后,您在 system.net.sockets 命名空间中有一个方法,允许您将其发送到服务器或从服务器到客户端创建一个字节数组,您可以使用 json 系统库来转换您想要发送的对象序列化toutf8bytes(对象)。之后,它只是在到达服务器后再次使用 json 系统库将字节转换回类对象。

以上是关于如何使用套接字编程定义客户端服务器并将数据库传递给 C# 中的客户端的主要内容,如果未能解决你的问题,请参考以下文章

C中的服务器/套接字编程:数据未正确发送/接收?

如何设置IIS以验证客户端证书并将其作为http标头传递给后端?

如何将套接字传递给节点中的集群

网络编程socket-SocketServer

我可以打开一个套接字并将其传递给 Linux 中的另一个进程吗

将 CSocket 传递给 std::thread