1

我正在构建一个专业的 iOS 应用程序,其中一台 iPad 是服务器,几台 iPhone 是客户端。

考虑到以下事实: - 通信仅通过使用 TCP 的套接字在本地网络上运行。- 我想让它们保持同步(所有设备都有一个本地数据库) - 我希望能够发送 NEW、UPDATE、DELETE 等命令以使它们保持同步 - 我希望能够发送一些通知附加数据(音频文件),-我想为所有这些命令定义优先级。

这让我觉得需要定义一个协议,所以我的问题是:是否已经存在?

非常感谢 !

4

1 回答 1

1

您可以监听套接字消息,服务器可以发送带有数据 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.
    }
于 2012-03-25T14:42:55.313 回答