通过互联网发送序列化对象

时间:2015-05-12 10:52:32

标签: c# networking serialization communication

我正在为我们的组织开发一个程序。我的程序(Windows 7上的C#桌面程序)由2个子程序组成:a" server"程序和客户"程序。

"服务器"程序将安装在总公司,并从分支机构接收有关每个员工的培训对象和主题的信息。它有一个PostgreSQL数据库后端。

"客户"程序将安装在组织的分支机构(目前有9个分支机构),它将有一个基于文件的数据库(尚未确定),并负责收集有关谁在该特定分支和哪个科目接受培训的信息。

因此,每天(给予或接受)每个分支都会将培训统计信息发送到主办公室的服务器程序(?序列化对象),主办公室将接收对象并将其存储在数据库中并将回复有一些信息,像" ok确认"或者"是的,你可以做到这一点"或者"不,拒绝"。在月底,总公司计算机将处理数据并打印一些统计数据。因此,分支机构和服务器之间的实时通信绝对没有必要。

问题:假设这些计算机是通过互联网直接互相通信的(我们在国内有动态IP地址),我该如何获取这些序列化对象从客户端到服务器,反之亦然?

我的想法是我可以使用电子邮件(发送文件作为附件),也可以使用任何云文件共享程序(Dropbox或OneDrive等)。但我不是专家程序员,我想知道这些事情是如何完成的。

p.s。:云数据库不是一个选项。出于性能原因+我不希望我们的信息出现在其他人的手中。一种通信方式是可以的,因为内容将在传输过程中进行签名和加密。

2 个答案:

答案 0 :(得分:0)

似乎带有REST API的HTTP服务器非常适合您。您需要将TCP端口从服务器转发到外部Internet(如果不确定,请联系您的Internet提供商。)

答案 1 :(得分:0)

确定这个问题的解决方案很容易。动态DNS +端口转发。