我从其他类似问题的答案中读到了一些建议的链接.第1条,图书馆1,另一个SO问题.但是,我无法弄清楚如何进行以下应用程序.
基本上,我发送到Iphone的IP和一个选定的端口(比如说端口:2020)一个字符串.我想在Iphone的UI上显示这个字符串.那么,让我们检查以下示例代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString* str;
while(true)
{
str = ReadLineFromPort(2020);
myLabel.text = str;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望该ReadLineFromPort()方法具有以下职责:
读取直到看到换行符(即'\n'),当看到换行符返回字符串时.(类似于C#StreamReader.Readline方法.)
任何帮助将不胜感激.由于我不是专业的IOS开发人员,我需要一个基本的开发人员.
听一些TCP端口确实需要设置一些东西.
一个很好的选择是使用Robbie Hanson的CocoaAsyncSocket.
在那里你可以找到Echo Server的一个例子(在RunLoop/XCode/EchoServer中.
没错,这个XCode项目是为OSX生成的,但你可以简单地创建一个空的iOS项目并复制粘贴大部分代码.
虽然没有'直到中断读'功能 - 但是在将数据复制到接收缓冲区时它很容易实现.
编辑:
您通常想要修改 onSocket: didReadData: withTag:
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length])];
NSString *str = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
if(str)
{
myLabel.text = str;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,此代码未\n在传入数据中检测到.例如,您可以定义一个ivar或属性rx_buffer
NSMutableString *rx_buffer;
Run Code Online (Sandbox Code Playgroud)
这将是建立的
rx_buffer = [rx_buffer stringByAppendingString: str];
Run Code Online (Sandbox Code Playgroud)
直到你发现\n在str.
| 归档时间: |
|
| 查看次数: |
6259 次 |
| 最近记录: |