基于Wi-Fi Direct的网络及其通信方法技术

技术编号:12162939 阅读:146 留言:0更新日期:2015-10-06 12:17
本发明专利技术公开了一种基于Wi-Fi Direct的网络及其通信方法,所述通信方法包括:服务器端绑定第一端口,开启与所述第一端口对应的服务;第一客户端和第二客户端均与所述服务器端通过Wi-Fi Direct建立连接;所述第一客户端从所述服务器端获取连接信息;所述第一客户端创建Server类实例,绑定第二端口,开启与所述第二端口对应的服务;所述第一客户端根据所述连接信息与所述第二客户端进行直接通信。本发明专利技术中的客户端通过创建实例、绑定端口和开启服务以实现服务器的功能,使其既是客户端又是服务器端,从而实现客户端与客户端之间的直接通信,减轻了服务器端的网络负载压力,使得整个网络的通信更加稳定和高效。

【技术实现步骤摘要】

本专利技术涉及通信领域,特别涉及一种基于W1-Fi Direct的网络及其通信方法。
技术介绍
W1-Fi Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。随着W1-Fi Direct技术的出现,W1-Fi设备无需传统网络或热点即可建立连接,从而实现点对点的连接。基于W1-Fi Direct技术通信的网络结构,通常包括一个服务器端和一个或多个客户端,当网络结构包括多个客户端时,每个客户端之间要想进行通信必须经过服务器端,即服务器端作为两个客户端的中间转发,从而会造成服务器端的网络负载压力,甚至会导致整个网络的通信不稳定,降低了通信效率。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术客户端之间通信必须经过服务器端转发,从而导致通信不稳定、通信效率低的缺陷,提供一种客户端之间能够直接通信的基于W1-Fi Direct的网络及其通信方法。本专利技术是通过下述技术方案来解决上述技术问题的:一种基于W1-Fi Direct的网络的通信方法,其特点在于,包括:服务器端绑定第一端口,开启与所述第一端口对应的服务;第一客户端和第二客户端均与所述服务器端通过W1-Fi Direct建立连接;所述第一客户端从所述服务器端获取连接信息,所述连接信息包括所述第一客户端和所述第二客户端的网络地址;所述第一客户端创建Server ( 一种实例名称)类实例,绑定第二端口,开启与所述第二端口对应的服务;所述第一客户端根据所述连接信息与所述第二客户端进行直接通信。本方案中,第一客户端通过创建Server类实例,绑定端口并开启服务来实现服务器的功能,能够监听到来自第二客户端的消息。同时,第一客户端本身还是客户端,能够主动向第二客户端发送消息,从而实现了第一客户端与第二客户端的对等通信。其中,服务器端通过绑定不同的端口来提供不同的服务,例如服务器端绑定端口 21后能够提供FTP (File Transfer Protocol,文件传输协议)服务,用于上传和下载;服务器端绑定端口80后能够提供HTTP (Hyper Text Transfer Protocol,超文本传输协议)服务,用于网页浏览;服务器端绑定端口 25后能够提供SMTP (Simple Mail Transfer Protocol,简单邮件传输协议)服务,用于发送邮件。较佳地,所述通信方法还包括:第三客户端与所述服务器端通过W1-Fi Direct建立连接;所述服务器端更新所述连接信息;所述第一客户端从所述服务器端获取更新后的连接信息,所述更新后的连接信息包括所述第一客户端、所述第二客户端和所述第三客户端的网络地址;所述第一客户端根据所述更新后的连接信息与所述第三客户端进行直接通信。本方案中,在第一客户端和第二客户端与服务器端建立连接之后,第三客户端也与服务器端建立连接,服务器端将包括第一客户端和第二客户端的网络地址的连接信息更新为包括第一客户端、第二客户端和第三客户端的网络地址的连接信息。第一客户端从服务器端获取更新后的连接信息,此时,根据更新后的连接信息,第一客户端不仅能够与第二客户端进行直接通信,还能够与第三客户端进行直接通信。较佳地,更新前的连接信息还包括所述第一客户端和所述第二客户端的物理地址和客户端名称,所述更新后的连接信息还包括所述第一客户端、所述第二客户端和所述第三客户端的物理地址和客户端名称。较佳地,所述第一客户端与所述第二客户端在TCP (传输控制协议)协议下进行直接通信,包括:所述第一客户端通过第一监听函数监听所述第二客户端的连接状态;所述第二客户端与所述第一客户端建立连接,并通过Socket (套接字)通道与所述第一客户端进行通信。本方案中,TCP协议下的第一监听函数为acc印t()函数,第一客户端通过accept O函数监听第二客户端的连接状态,第二客户端通过connect O函数与第一客户端建立连接,第一客户端获取同第二客户端建立连接的Socket通道,第一客户端通过该通道能够实现与第二客户端的直接通信。其中,第一客户端和第二客户端在TCP协议下通信的消息体包含header和data,即数据头和数据体,数据头中是一些键值对的集合类,数据头为数据体的描述信息,例如文件大小,其中key为文件大小,value为文件大小的值。较佳地,所述第一客户端与所述第二客户端在UDP (用户数据报协议)协议下进行直接通信,包括:所述第一客户端通过第二监听函数监听数据包;所述第二客户端向所述第一客户端发送数据包。本方案中,UDP协议下的第二监听函数为receiveO函数,第一客户端通过receive O函数监听数据包,第二客户端不需要与第一客户端建立连接,通过send O函数向第一客户端发送数据包即可实现与第一客户端的直接通信。其中,第一客户端与第二客户端在UDP协议下通信的消息体采用Gson (Google提供的用来在Java对象和JSON数据之间进行映射的Java类库)数据,Gson数据是Java对象通过Gson转化的数据类型,具有类似http报文的数据结构,包括消息类型和消息主体内容等。较佳地,所述数据包包括所述第一客户端的网络地址和所述第二端口。较佳地,所述第一端口与所述第二端口不同。本方案中,所述服务器端与实现服务器功能的所述第一客户端绑定的端口不同,能够提供不同的服务。本专利技术还提供一种基于W1-Fi Direct的网络,其特点在于,所述网络包括服务器端、第一客户端和第二客户端,所述服务器端用于绑定第一端口,开启与所述第一端口对应的服务;所述第一客户端和所述第二客户端均用于与所述服务器端通过W1-FiDirect建立连接;所述第一客户端用于从所述服务器端获取连接信息,所述连接信息包括所述第一客户端和所述第二客户端的网络地址;所述第一客户端用于创建Server类实例,绑定第二端口,开启与所述第二端口对应的服务;所述第一客户端用于根据所述连接信息与所述第二客户端进行直接通信。较佳地,所述网络还包括第三客户端,第三客户端用于与所述服务器端通过W1-FiDirect建立连接;所述服务器端还用于更新所述连接信息;所述第一客户端还用于从所述服务器端获取更新后的连接信息,所述更新后的连接信息包括所述第一客户端、所述第二客户端和所述第三客户端的网络地址;所述第一客户端用于根据所述更新后的连接信息与所述第三客户端进行直接通信。较佳地,更新前的连接信息还包括所述第一客户端和所述第二客户端的物理地址和客户端名称,所述更新后的连接信息还包括所述第一客户端、所述第二客户端和所述第三客户端的物理地址和客户当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种基于Wi‑Fi Direct的网络的通信方法,其特征在于,包括:服务器端绑定第一端口,开启与所述第一端口对应的服务;第一客户端和第二客户端均与所述服务器端通过Wi‑Fi Direct建立连接;所述第一客户端从所述服务器端获取连接信息,所述连接信息包括所述第一客户端和所述第二客户端的网络地址;所述第一客户端创建Server类实例,绑定第二端口,开启与所述第二端口对应的服务;所述第一客户端根据所述连接信息与所述第二客户端进行直接通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:殷圣鸽王佳
申请(专利权)人:上海摩软通讯技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1