Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字服务器无法从objective-c客户端正确读取字符串,为什么?_Java_Objective C_Sockets - Fatal编程技术网

Java套接字服务器无法从objective-c客户端正确读取字符串,为什么?

Java套接字服务器无法从objective-c客户端正确读取字符串,为什么?,java,objective-c,sockets,Java,Objective C,Sockets,我已经编写了一个java套接字服务器和一个objective-c套接字客户端,当客户端连接到服务器时,它将发送字符串“server\n”。服务器端无法正确读取,如下所示: ��Y�~�Ü{欧盟`�N��N�8.���������,��,�+�$�#� 双方都使用utf-8,如何使其工作 对象套接字客户端: NSString *jsonStr = @"server\n"; const char * clientTextData = [jsonStr cStringUsingEncodin

我已经编写了一个java套接字服务器和一个objective-c套接字客户端,当客户端连接到服务器时,它将发送字符串“server\n”。服务器端无法正确读取,如下所示: ��Y�~�Ü{欧盟`�N��N�8.���������,��,�+�$�#� 双方都使用utf-8,如何使其工作

对象套接字客户端:

NSString *jsonStr = @"server\n";
    const char * clientTextData = [jsonStr 
cStringUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"=========>%@==========>%s",jsonStr,clientTextData);
    NSData* lengthData=[NSData dataWithBytes:clientTextData length:200];
    [gcdSocket writeData:lengthData withTimeout:-1 tag:110];
Java服务器端:

public void run()
{
    try {
        InputStream is = sk.getInputStream(); //sk is socket object
        br = new BufferedReader(new InputStreamReader(is));
        String typeString = br.readLine();

Java默认使用utf-16。您是否确定Java端需要utf-8?按照以下方式创建您的对象-
新建BufferedReader(new InputStreamReader(是“UTF8”);
。让我知道这是否有帮助,如果没有帮助,那么让我知道输出如何,这取决于您需要找到一种明确使用“UTF8”的机制在您的objective c代码中也是如此。Java默认使用utf-16。您有多确定Java端需要utf-8?像这样创建您的对象-
new BufferedReader(new InputStreamReader(is,“UTF8”));
。让我知道这是否有帮助,如果没有帮助,那么让我知道输出如何,这取决于您需要找到一种机制,以便在您的目标c代码中显式使用“UTF8”。