iOS:在套接字中读写(tcp连接)

时间:2014-07-16 14:12:48

标签: ios sockets asyncsocket

在我的应用程序中,我应该与服务器端(作为服务器的小设备)通信。

我的主要操作是写一个17字节的序列并读取结果。我使用过GCDAsyncSocket,但它没有给我带来好结果。

我想问你是否有办法以有效的方式完成这项工作。

1 个答案:

答案 0 :(得分:0)

不要在主线程上执行此操作。由于您的用户案例很简单,我写了一个简单的例子。我不顺便测试它......

int sock = socket(AF_INET, SOCK_STREAM, 0) ;
struct sockaddr_in server_addr ;
bzero(&server_addr, sizeof(server_addr)) ;
server_addr.sin_port = htons(1025) ;
server_addr.sin_addr.s_addr = inet_addr("192.168.1.5") ;
server_addr.sin_family = AF_INET ;

int i = connect(sock, (const struct sockaddr *)&server_addr, sizeof(server_addr)) ;
if (i >= 0) {
    char writeBuf[17] = "12345678901234567" ;
    long w = write(sock, writeBuf, 17) ;
    if (w > 0) {
        char bufferRead[1024] ;
        long r = read(sock, bufferRead, sizeof(bufferRead)) ;
        if (r > 0) {
            // success
        }
    }
}
close(sock) ;