基于socket开发网络调试助手
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于socket开发网络调试助手相关的知识,希望对你有一定的参考价值。
1.什么是Socket?
在计算机领域socket被翻译为套接字,它是计算机之间进行通信的一种方式,通过socket这种约定,一台计算机可以向另外一台计算机发送数据和接收数据。
2.Socket的本质?
Socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是socket编程接口。
3.socket的作用?
可以实现不同虚拟机或者是计算机之间的通信。
4.socket的典型应用?
(1)socket的典型应用之一 就是web服务器和浏览器,浏览器获取用户输入的URL,向服务器发起请求,服务器分析接收到的URL,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,就将文字、
图片、视频等元素呈现给用户。
(2)QQ或者微信等聊天工具也是socket的应用之一,本地的QQ或者微信程序就是客户端,登录过程就是连接服务器的过程,聊天过程其实就是socket的发送和接收过程。
socket主要包括以下几种接口:
socket位于应用层和传输层之间,把socket比作门,门外是邮局,你要送信就要通过门,把信从门送出去到邮局,然后由邮局帮你送达目标的门,目的地主任再打开门,从门取出来邮局送过来的信,上述比喻
中,邮局就是传输层(及更下面的层),而门内就是应用。
socket的编程方式?
socket,一切皆文件,都可以用"打开open------>读写read/write------->close"模式来操作。socket就是该模式的一个实现,socket即是一个特殊的文件,一些socket函数就是对其进行的操作(读/写IO,打开,关闭)
因此socket提供了类似于连接(Connect),关闭(Close),发送,接收等方法调用。
数据的传输方式:STREAM和DREAM
(1)STREAM表示面向连接的数据传输方式,数据可以准确无误的到达另一台计算机,如果损坏或丢失,可以重新发送,但是效率较慢。
(2)DREAM表示无连接的数据传输方式,计算机只管传输数据,不做数据校验,DREAM所作的校验工作少,所以效率比STREAM高。
QQ视频聊天就是使用DREAM传输数据,因为首先要保证通信效率,尽可能减小延迟,而数据的准确性是次要的,即使丢失很小的一部分数据,视频和音频也可以正常解析,最多出现噪点和杂音,不会对通
信质量有质的影响。
接下来,我们将使用socket来开发网络调试助手。
服务器端程序的编写:
第一步,创建一个用于通信的socket套接字
第二步,给已经创建的套接字绑定一个端口号,这个一般通过设置网络套接口地址和调用Bind()函数来实现。
第三步,调用Listen()函数使套接字成为一个监听的套接字。
第四步,调用accept()函数来接收客户端的连接,这时候就可以和客户端通信了。
第五步,处理客户端的连接请求。
第六步,终止连接。
客户端程序编写步骤:
第一步,调用socket()函数创建一个用于通信的套接字。
第二步,通过设置套接字地址结构,说明客户端与之通信的服务器的Ip地址和端口号。
第三步,调用connect()函数来建立与服务器的连接。
第四步,调用读写函数发送或者接收数据。
第五步,终止连接。
以上是关于基于socket开发网络调试助手的主要内容,如果未能解决你的问题,请参考以下文章
基于STM32单片机的LwIP协议LwIP 的TCP_client 上传数据温度电压数据到网络调试助手
基于STM32单片机的LwIP协议LwIP 的TCP_client 上传数据温度电压数据到网络调试助手
借助ESP8266 WIFI模块,实现Android手机有人网络调试助手(或Android手机网络调试助手)与PC端串口调试助手互相通信。