문제

나는 WiFi를 통해 NSString을 보내려고 노력하고 오류없이 작동합니다.NSString의 경우 NSUTF8StringEncodingin에서 iOS App & Java Server 측 모두를 사용했습니다.

이제 WiFi를 통해 NSData (이미지)를 Java 서버로 보내고 싶습니다.이 코드를 사용하여 이미지를 Java 서버로 보낼 것입니다.

NSData *newData = UIImagePNGRepresentation([UIImage imageNamed:@"Default.png"]);
    int index = 0;
    int totalLen = [newData length];
    uint8_t buffer[1024];
    uint8_t *readBytes = (uint8_t *)[newData bytes];

    while (index < totalLen) {
        if ([outputStream hasSpaceAvailable]) {
            int indexLen =  (1024>(totalLen-index))?(totalLen-index):1024;

            (void)memcpy(buffer, readBytes, indexLen);

            int written = [outputStream write:buffer maxLength:indexLen];

            if (written < 0) {
                break;
            }

            index += written;

            readBytes += written;
        }
    }
.

내 질문은 Java Server에서 NSDATA를 읽을 수 있습니까?해결책이 뭐야?인코딩 방법을 사용해야합니까? 또한 누군가가 나에게 nsdata 또는 이미지를 읽는 샘플 Java 서버 코드를 제공 할 수 있습니다 ....

도움이 되었습니까?

해결책

private void saveFile(Socket socket, File receivingFile) {
        try {
            FileOutputStream wr = new FileOutputStream(receivingFile);
            byte[] buffer = new byte[socket.getReceiveBufferSize()];
            int bytesReceived = 0;

            while ((bytesReceived = socket.getInputStream().read(buffer)) > 0) {
                wr.write(buffer, 0, bytesReceived);
            }
            wr.close();
            setLogMessege("SaveFile", "File Written");
            socket.close();
        } catch (IOException e) {
            try {
                socket.close();
            } catch (IOException ex) {
                Logger.getLogger(AcceptCameraImages.class.getName()).log(Level.SEVERE, null, ex);
            }
            setLogMessege("SaveFile", e.getMessage());
        }`enter code here`
.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top