我試圖從android發送圖像到C#服務器使用套接字,但出了點問題。發送圖像從android java到c#服務器在電腦
package com.example.clientsocket;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView serverMessage;
Thread m_objThreadClient;
Socket clientSocket;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
serverMessage=(TextView)findViewById(R.id.textView1);
}
public void Start(View view)
{
m_objThreadClient=new Thread(new Runnable()
{
public void run()
{
try
{
clientSocket= new Socket("192.168.88.113",2001);
//ObjectOutputStream oos = new ObjectOutputStream(clientSocket.getOutputStream());
File myFile = new File("/storage/sdcard0/Pictures/CameraSample/*.jpg");
InputStream fis = new FileInputStream("/storage/sdcard0/Pictures/CameraSample/*.jpg");
byte [] buffer = new byte[(int)myFile.length()];
fis.read(buffer,0,buffer.length);
OutputStream outputStream = clientSocket.getOutputStream();
outputStream.write(buffer.length);
outputStream.write(buffer,0,buffer.length);
outputStream.flush();
outputStream.close();
clientSocket.close();
//byte [] buffer = new byte[(int)myFile.length()];
// ...
//fis.read(buffer,0,buffer.length);
//OutputStream os = clientSocket.getOutputStream();
//oos.writeObject("37");
//oos.flush();
//oos.writeObject(buffer);
//os.write(37);
//os.write(buffer);
// <- This one.
/*
int temp = 0 ;
while((temp = fis.read(buffer)) != -1)
{
outputStream.write(buffer, 0, temp);
} */
/*
Message serverMessage= Message.obtain();
ObjectInputStream ois =new ObjectInputStream(clientSocket.getInputStream());
String strMessage = (String)ois.readObject();
serverMessage.obj=strMessage;
mHandler.sendMessage(serverMessage);
oos.close();
ois.close();*/
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
m_objThreadClient.start();
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg)
{
messageDisplay(msg.obj.toString());
}
};
public void messageDisplay(String servermessage)
{
serverMessage.setText(""+servermessage);
}
}
Server獲取60800作爲緩衝長度我發送的每單個圖像,並使用該陣列我不能C#作出的圖像。 我想要從android上的服務器接收字符數組。 我在做什麼錯誤的JPG文件,因爲我想只有一個圖像在我的文件夾中同時?