首页 新闻 会员 周边 捐助

C# 如何在Socket 双向认证客户端与服务端之间通讯?

1
悬赏园豆:10 [已解决问题] 解决于 2017-07-05 17:34

是这样的,目前有个项目,需要使用Socket通讯协议进行双向认证,我写的C#只是一个中间传输过程,并不参与加密解密或生成证书, socket服务端是Java写的,socket客户端是一个别人包装好的动态链接库(DLL)去链接终端设备(POS机),我只要调用接口作为中间传输就可以。

我现在没有思路,请问,我该如何从客户端拿到公钥,然后用什么方式传输给服务端,得到服务端返回的结果?谢谢各位!!!!

居~的主页 居~ | 初学一级 | 园豆:28
提问于:2017-06-14 18:29
< >
分享
最佳答案
0

先了解先客户端的接口会返回那些信息,服务器端的接口返回那些信息;在了解调用接口时需要给客户端传送那些参数,调用服务器时传入那些参数。业务先了解清楚,在使用Socket写访问链接就可以。如果客户端没有返回的公钥,那就要去问下以前参与过的同事了。

个人理解:如果接口不返回公钥,有可能要修改下接口了。这则公钥就是有人知道的,写到自己的程序中就可以了,最好写成可配置的。方便后期维护修改。

收获园豆:10
拿着菜刀 | 菜鸟二级 |园豆:236 | 2017-06-14 20:54

 

大神,我想请问下,这种如何使用socket传输?

 

 

 

居~ | 园豆:28 (初学一级) | 2017-06-15 15:49
其他回答(4)
0

你相当于一个代理啊,代理必须具有和服务端一样的权限啊。

这是我猜测的………………

荆棘人 | 园豆:410 (菜鸟二级) | 2017-06-14 19:11

要这样子吗?

支持(0) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-14 19:15

@久久小垠: 我也是菜鸟,但是我感觉你的作用像是代理。

支持(0) 反对(0) 荆棘人 | 园豆:410 (菜鸟二级) | 2017-06-14 19:17
1

QS1:服务端的代码是现成的.还是需要改的

吴瑞祥 | 园豆:29449 (高人七级) | 2017-06-14 19:23

别人已经写好了的,我只需要去调用

支持(0) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-14 20:35

@久久小垠: 那你只需要在请求里配置密钥就可以了.

你更需要问的是服务提供方.要怎么请求.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-06-14 20:58

@吴瑞祥: 

大神,我想请问下,这种如何使用socket传输?我不知道怎么组装报文传输,

 

 

 

支持(1) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-15 15:50

@久久小垠: 这不是写的挺清楚的..你需要问的就是公钥信息的格式.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-06-15 15:58

@吴瑞祥: 我没弄过,所以想请教请教思路。

支持(0) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-15 16:07

@吴瑞祥: 公钥信息格式我不用管,我直接调接口拿到公钥信息,然后通过组报文格式传输给服务端。

支持(0) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-15 16:09
1

透传;lvs也可以

花飘水流兮 | 园豆:13595 (专家六级) | 2017-06-14 20:24

什么意思

支持(0) 反对(0) 居~ | 园豆:28 (初学一级) | 2017-06-14 20:35

@久久小垠: 还有vpn等都可以...方法很多,lvs就相当于代理,比较下层。按道理Windows下也是有对应服务的 —— 只不过没用过Windows的。服务都是现成的,就是配置搭建。

支持(0) 反对(0) 花飘水流兮 | 园豆:13595 (专家六级) | 2017-06-14 20:42
0

你先的了解socket如何工作的吧

清风浮云 | 园豆:213 (菜鸟二级) | 2017-06-16 18:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册