我必须使用套接字编程为iOS创建一个聊天应用程序,我的IP地址是192.168.0.57:9300.我使用Raywenderlich套接字编程示例,接收数据正常工作但发送不工作,没有任何错误或崩溃.我的代码如下.
打开流的代码
- (void) initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.0.57", 9300, &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];
}
Run Code Online (Sandbox Code Playgroud)
发送数据的代码
- (IBAction)sendMessage:(id)sender
{
NSString *response = @"lets start chat";
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSASCIIStringEncoding]];
[outputStream write:[data bytes] maxLength:[data length]];
}
Run Code Online (Sandbox Code Playgroud)
代表
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent {
NSLog(@"stream event %i", streamEvent);
switch (streamEvent) { …Run Code Online (Sandbox Code Playgroud)