我试图通过wifi发送NSString,并且可以正常运行。对于NSString,我NSUTF8StringEncoding
在iOS应用程序和Java服务器端都使用了。
现在,我想通过wifi将NSData(images)发送到我的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服务器中读取NSData吗?如果无法解决,该怎么办?我应该使用编码方法吗?也有人可以给我一个示例Java服务器代码来以某种方式读取NSData或图像...。
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`
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句