1

我只想在目标 C 或 C 中模仿下面的 PHP,

<?php
$host="192.168.1.4";
$port = 1000;
$message="Hi";

// open a client connection

$fp = fsockopen ($host, $port, $errno, $errstr);

if (!$fp){

$result = "Error: could not open socket connection";

}
else{

fputs ($fp, $message);

fputs ($fp, "END");

fclose ($fp);

}

?>

我在Objective C中实现了以下功能,但这并不是那么可靠和快速,只有第一条消息被传递,我需要重新连接第二个数据(我已经尝试过https://github.com/robbiehanson/CocoaAsyncSocket,但反映了结果与以下代码相同)。我需要打开数据->发送数据->关闭连接(需要即时无延迟)

NSString *ipaddress =[NSString stringWithFormat:@"192.168.1.4"];

        CFReadStreamRef readStream;
        CFWriteStreamRef writeStream;
        CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)ipaddress, 1000, &readStream, &writeStream);

        inputStream = (NSInputStream *)readStream;
        outputStream = (NSOutputStream *)writeStream;
        [inputStream setDelegate:self];
        [outputStream setDelegate:self];
        [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
        [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

        [inputStream open];
        [outputStream open];
4

1 回答 1

3

我强烈建议使用更高级别的框架进行网络通信。在我的大部分项目中,我一直在使用CocoaAsyncSocket - 比直接使用 iOS 的网络 API 的脑损伤要小得多。

于 2012-12-24T10:17:49.760 回答