【发布时间】:2014-01-19 01:37:12
【问题描述】:
我是 Objective-c 的新手,所以请帮忙。我正在接收图像,但不完全是我的代码。 我确信问题出在此处而不是服务器端,但是如果您需要我发布服务器端的代码,那么请不要这样做。
uint8_t buf[3000000];
int len = 0;
len = [inputStream read:buf maxLength:3000000];
UIImage* fooo ;
NSMutableData *dataa=[[NSMutableData alloc] initWithLength:0];
do{
len = [inputStream read:buf maxLength:3000000];
if(len>0) current+=len;
}
while (len>-1);
[dataa appendBytes: (const void *)buf length:current];
fooo = [[UIImage alloc] initWithData:dataa];
[inputStream close];
[outputStream close];
服务器端
String FilePath=xxxxx.jpeg";
System.out.println (FilePath);
File file1=new
File(xxxxxx\\38.jpeg");
long v=file1.length();
byte [] mybytearray = new byte [(int)file1.length()];
FileInputStream fis = new
FileInputStream(FilePath);
BufferedInputStream bis = new
BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
os = connectionSocket.getOutputStream();//outpustream
System.out.println("Sending...");
os.write(mybytearray,0,mybytearray.length);
System.out.println("Sent");
os.flush();
【问题讨论】:
-
如果你从服务器端获取图片的url并得到这样的图片,那将非常容易......
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:MyURL]]]; -
服务器是java服务器,我使用sockets发送和接收
-
这可以与任何服务器一起使用...但是由于套接字是您的要求,您做得对...在这种情况下可能是一些数据包尚未收到...
-
如果图像大小大于您分配的缓冲区,那么您将丢失一些东西>
标签: ios objective-c uiimage inputstream