socket编程到底是什么?
的有关信息介绍如下:就是网络编程,先创建套接字,绑定端口和ip,然后在套接字上传输消息。
说起来就是网络编程,服务端监听端口,客户端向服务端端口发起请求,建立连接,然后交互!
nginx tomcat底层都涉及到socket编程,nginx监听了80或443等端口,tomcat监听8080端口等等!
socket,即套接字,是网络中的应用程序之间双向通信的端点。
介绍
举个形象的例子,我们每个人手中的智能手机,就是一个socket,这个socket携带了手机号码,我们可以输入别人的手机号码,进行拨号通信,彼此进行语音聊天,也可以发送短信聊天。
可以拨打电话互相聊天,这个叫TCP协议。
可以发送短信单向聊天,这个叫UDP协议。
TCP和UDP协议的区别是,TCP需要你来我往的互相保持通信,UDP是单向的通信。
套接字的分类
以TCP为代表的流套接字SOCK_STREAM,该类型的套接字能实现无差错、无重复送,并按顺序接收。
以UDP为代表的数据报套接字SOCK_DGRAM,该类型的套接字无需保持连接,无法保证数据能被对方确切的收到,不可靠的,会出现数据丢失或重复的。
除了上面2个套接字,还有一种是原始套接字SOCK_RAW,其他协议的收发使用该套接字。
工作流程
客户端socket向服务端socket发送连接请求,服务端收到后会响应客户端,告知客户端服务端已获取到你的请求,客户端再把数据部分和数据的协议头发送给
示例代码
总结
学习socket,可以通过视频学习,现在网上比较多的这类视频,不妨去看一看。另外,要多动手,自己写一写,代码要多写才能学得更快。
我是暗黑程序员,如果你对技术也有追求,对现实迷茫,请关注我。
工作中经常用到工业机器人中的socket通信,所以就socket在工业机器人中的使用情况做一下解读。
什么是socket?
socket就是套接字,是和不同设备进行双向通行的虚拟地址。不同的设备进行通信时,需要设备唯一对应的套接字。套接字表面连接应用程序,底层连接通讯协议,是设备之间进行网络通讯的接口,是上层应用程序和底层网络协议之间数据交互的接口。可以这么理解,socket通信是自定义的网络通讯方式,自定义通信数据类型和数据长度,以及读写的时机。套接字表达方式是设备的IP地址:端口号。使用socket通信,两个设备一个做客户端Client Socket,一个做服务器 Server Socket。
工业机器人行业socket的应用
目前,主流工业机器人都集成socket通信,需要底层通信选项包的支持。机器人通过socket编程可以和支持TCP/IP协议的PLC、相机等设备进行数据交互。成本低,通信自由度高。
工业机器人如何进行socket编程?
工业机器人要进行socket通信,首先要定义传输数据的类型和长度,一般使用字符串的形式。还要创建套接字(例如socket1),有几个设备就要创建几个套接字。然后先进行一次套接字的关闭释放,能够保证通信的正确性。多个设备通信时,同时只能执行一个设备的数据交互。根据通信设备的IP地址和端口号建立套接字连接,判断通信状态。使用专用的socket读指令和socket写指令进行数据的交互。数据读写完成后,最后关闭当前套接字,释放socket连接,防止通信冲突。数据读写时,有时还有进行数据的解析,把字符串数据转换成字符或者数值应用到程序中。
socket通信的优缺点
优点:通信自由,只要支持TCP/IP协议,就可以使用socket进行通信。成本低,工业机器人厂商一般都开放socket通信。
缺点:编程量大,需要熟练掌握socket相关指令的使用方法。通信采用问答式,通信协议比较复杂,通信效率低。
以上总结了实际工作中使用socket通信的个人经验分享,可能无法完全回答您的问题。至于书籍,自己也没看过相关的书籍,都是查看机器人通信手册来完成工业机器人socket通信编程的。希望其它大神可以推荐给你。
网络编程,进行网络通信用的。