首页 >

socket传输字符串与其他类型的数据,有什么区别? – 网络|

买好域名怎么办,怎么没有美式键盘,网站网站怎么定位socket传输字符串与其他类型的数据,有什么区别? - 网络|socket传输字符串与其他类型的数据,有什么区别

你肯定是想问socket传输数据时,接收方如何知道接收的是字符串还是二进制值。

一是靠事先约定的协议,一般用于控制中的数据传输;二是采用标准协议(如HTTP),用于互联网。

如果没有事先的约定,你无法确定接收到的数据是文本、图像还是音频或视频。因此,必须事先约定Socket接收数据的格式。约定既可以采用标准协议(如HTTP),也可以用自己定义的协议。

以下通过偶之前做的编程实类,分别说明:

事先约定协议:二进制与字符串事先写好格式,与文件读/写一样。

SOCKET传输字符串还是其它数据类型,由你在编程的send()函数中决定,其数据类型为void*,void *为“无类型指针”,void *可以指向任何类型的数据,也就是说可以用字符串,也可以用二进制的int,double等。

TCP/IP,UDP传输协议,用socket编程并创建socket关键字来实现网络间的通信。

如下图是windows的一个socket编程。

从其send,recv函数的格式看,与C/VC++的fread/fwrite()函数非常一致,只是把流换成socket套接字了:

HTTP客户端请求:要复杂,必须按照HTTP标准协议做。

以客户端为例。

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

编程实倒:

从上面看出,编程与windows,linux迥然不同。


socket传输字符串与其他类型的数据,有什么区别? - 网络|
  • css动画黑屏 |css3 圆形 按钮 边界
  • css动画黑屏 |css3 圆形 按钮 边界 | css动画黑屏 |css3 圆形 按钮 边界 ...

    socket传输字符串与其他类型的数据,有什么区别? - 网络|
  • 原产国瑞士代码? - 网络|
  • 原产国瑞士代码? - 网络| | 原产国瑞士代码? - 网络| ...

    socket传输字符串与其他类型的数据,有什么区别? - 网络|
  • 计算机专业读研究生,如果不读人工智能和大数据方向是不是没有前途? - 网络|
  • 计算机专业读研究生,如果不读人工智能和大数据方向是不是没有前途? - 网络| | 计算机专业读研究生,如果不读人工智能和大数据方向是不是没有前途? - 网络| ...