iOS:在套接字中读写(tcp连接)
Posted
技术标签:
【中文标题】iOS:在套接字中读写(tcp连接)【英文标题】:iOS: read and write in a socket (tcp connection) 【发布时间】:2014-07-16 14:12:47 【问题描述】:在我的应用程序中,我应该与服务器端(充当服务器的小设备)进行通信。
我的主要操作是写入一个 17 字节的序列并读取结果。我使用了 GCDAsyncSocket,但它并没有给我带来好的结果。
我想问你是否有一种方法可以有效地完成这项工作。
【问题讨论】:
你总是可以使用纯 C 语言。 【参考方案1】:不要在主线程上这样做。由于您的用户案例很简单,因此我编写了一个简单的示例。顺便说一下,我不测试...
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) ;
【讨论】:
好的,你的回答太快了,我相信它可以正常工作......但是你有一些文档要查看吗?我可以对 GCDAsyncSocket 做同样的事情吗? @nazz_areno 我建议你读一本书Unix Network Programming, Volume 1
,这是一本非常好的书,它讲述了如何使用套接字进行编程。你可以用GCDAsyncSocket
做同样的事情,如果你和服务器有复杂的交互,你最好使用GCDAsyncSocket
。以上是关于iOS:在套接字中读写(tcp连接)的主要内容,如果未能解决你的问题,请参考以下文章