WiFi를 통해 Java Server로 NSDATA를 보냅니다
-
21-12-2019 - |
문제
나는 WiFi를 통해 NSString을 보내려고 노력하고 오류없이 작동합니다.NSString의 경우 NSUTF8StringEncoding
in에서 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`
. 제휴하지 않습니다 StackOverflow