socket 、webservices、Json的区别

今天上网浏览了一篇日志,这里仅仅作为收藏,供个人知识积累,特此声明

 

面试的时候,别人问到过这种问题,仅作个人积累


socket是java针对 tcp/ip 的一个实现
webservice是基于http的分布式系统的接口实现方式,http是在tcp/ip基础上搭建起来的超文本传输协议。

socket和webservice都有跨平台的优点,但是socket偏底层,效率高,但是开发成本大。
webservice效率低,但是开发成本低廉。

ws是基于http协议的(当然JAX-WS貌似认为ftp之类的也可以?)以xml为载体的通信方式。
ws的好处是第一是直观(xml吗!),第二是标准(貌似ms从2002年就开始力推了),当然也方便了异构系统的交互。如果你想提供对外的业务访问的接口,可能需要浏览器,各种语言的客户端等各种异构系统访问,ws是首选。简单的例子比如你提供个天气预报服务。java里面首选cxf。

如果说http和ftp是语言,socket顶多算发音。基于socket的编程为你提供了tcp/ip或者udp的通信的实现;如果你做标准的服务器,比如下载服务器;或者语音通信的程序,或者视频,文件传输……这些只能用socket。当然单纯用socket写会很烦的,你要处理各种东西,协议的编解码等等,所以这种情况下推荐mina,netty或者grizzly。

json是个很不错的玩意,本质来说它就是javascript片段描述的对象。说到这里各位聪明的弟弟妹妹们肯定明白,它应该对浏览器很有用。是的!如果你要做一个ajax的功能的话,json是最简单有效而且性能灰藏好!比如mtime的很多异步功能都是用json方式传递的。json好在没有什么门槛,也可以用于异构系统交互,不过如果异构系统不仅仅是浏览器,那你还是选择ws吧。jsonlib等库都可以直接把一个对象转为json字符串,struts2也提供了json插件,2.1.8以后是内置插件了。

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在Python客户端代码中,使用了socket库和json库来实现与服务器的通信。首先,创建了一个名为msg的类,并实例化了一个对象data。然后,将data对象转换为字典dataDict,并将其转换为json格式的字符串dataJson。最后,将dataJson编码为字节流并发送给服务器。在Java服务端代码中,使用了ServerSocketSocket来接收客户端的连接,并通过InputStream读取客户端发送的数据。 引用\[2\]:在引用中提到了关于客户端发送图片的情况,但与问题无关。 引用\[3\]:在引用中提到了关于客户端将图片转换为Mat并进行Base64编码的情况,但与问题无关。 回答: 是的,socket可以传输json数据。在Python客户端代码中,使用json.dumps将数据对象转换为json格式的字符串,并通过socket发送给服务器。在Java服务端代码中,通过InputStream读取客户端发送的数据,并可以使用相应的方法解析json数据。因此,socket可以用于传输json数据。 #### 引用[.reference_title] - *1* [python用socket传输json格式数据给java](https://blog.csdn.net/weixin_46009432/article/details/125102480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C++实现Socket传输json封装的Mat](https://blog.csdn.net/weixin_36105296/article/details/117105193)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值