我正在构建一个专业的 iOS 应用程序,其中一台 iPad 是服务器,几台 iPhone 是客户端。
考虑到以下事实: - 通信仅通过使用 TCP 的套接字在本地网络上运行。- 我想让它们保持同步(所有设备都有一个本地数据库) - 我希望能够发送 NEW、UPDATE、DELETE 等命令以使它们保持同步 - 我希望能够发送一些通知附加数据(音频文件),-我想为所有这些命令定义优先级。
这让我觉得需要定义一个协议,所以我的问题是:是否已经存在?
非常感谢 !
我正在构建一个专业的 iOS 应用程序,其中一台 iPad 是服务器,几台 iPhone 是客户端。
考虑到以下事实: - 通信仅通过使用 TCP 的套接字在本地网络上运行。- 我想让它们保持同步(所有设备都有一个本地数据库) - 我希望能够发送 NEW、UPDATE、DELETE 等命令以使它们保持同步 - 我希望能够发送一些通知附加数据(音频文件),-我想为所有这些命令定义优先级。
这让我觉得需要定义一个协议,所以我的问题是:是否已经存在?
非常感谢 !
您可以监听套接字消息,服务器可以发送带有数据 url 的简单结构,向客户端发送命令,然后他们可以更新数据,例如:
#define MSG_DOWNLOAD 1
typedef struct{
uint8_t cmd;
uint8_t size;
} MSGHEADER
typdef struct{
MSGHEADER header;
char url[255];
} MSGDOWNLOAD;
在套接字中,如果您将获得带有 cmd = 1 的标头,您可以将带有 url 的 NSURLconnetion 发送到您的服务器并下载一些数据并同步它。
- (void)recivedDataFromBuffer:(NSData *)data
{
MSGHEADER *pMsgHdr;
pMsgHdr = (MSGHEADER*)[data bytes];
int headerCMD = pMsgHdr->cmd;
if (headerCMD == MSG_DOWNLOAD)
{
MSGDOWNLOAD download = *(MSGDOWNLOAD *)pMsgHdr;
download.header = *pMsgHdr;
// do sync stuff send url request etc.
}