Hallo Community
Ich möchte über TCP/IP einen String an einen Server versenden. Plattform
ist MacOS X 10.5, Programmiersprache Objectiv-C. Die Verbindung mit dem
Server kann ich aufbauen, der Socket steht also. Nun weiss ich aber
nicht ob mit der von mir verwendeten Methode überhaupt ein String raus
geht. Auf jedenfall kommt nichts beim Server an! Deshalb meine Frage an
euch: Wie könnte ich überprüfen ob und was da über meine TCP-Verbindung
raus geht. Und meine zweite Frage: Wenn da tatsächlich nichts rausgeht,
was mach ich falsch??
Hat hier jemand Erfahrung mit Objectiv-C?
Hier noch mein Code:
1 | - (IBAction)searchForSite
|
2 | {
|
3 | NSString *urlStr = @"192.168.1.21"; //server IP
|
4 | NSHost *host = [NSHost hostWithName:urlStr];
|
5 | NSString *sendData = @"IP_ClIENT_OPEN"; //String to send
|
6 |
|
7 | //create iStream and oStream objects and set port-nr
|
8 | [NSStream getStreamsToHost:host port:1319 inputStream:&iStream outputStream:&oStream];
|
9 |
|
10 | //open input-stream and output-stream
|
11 | [iStream retain];
|
12 | [oStream retain];
|
13 | [iStream setDelegate:self];
|
14 | [oStream setDelegate:self];
|
15 | [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
|
16 | [oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
|
17 | [iStream open];
|
18 | [oStream open];
|
19 |
|
20 | if (iStream) {
|
21 | NSLog (@"Streamevent bytes");
|
22 | uint8_t *buf[1024];
|
23 | unsigned int len = 0;
|
24 | len = [(NSInputStream *)iStream read:buf maxLength:1024];
|
25 | NSLog(@"Puffer: %s",buf);
|
26 | NSData *data = [NSData dataWithBytes:(const void *)buf length:len];
|
27 | if (data) {
|
28 | NSLog(@"Data: %@",data);
|
29 | }
|
30 | NSString *part = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
|
31 | NSLog (@"Part %p",part);
|
32 | [oStream write:sendData maxLength:strlen(sendData)];
|
33 | NSLog(@"End");
|
34 | }
|
35 | }
|
Gruss
Pascal