소켓통신으로 파일 송수신을 구현하려고 합니다.
서버에서(PC/C) 파일 전송하면 클라이언트(Phone/Android)에서 받아서 파일 전송하는거 구현중이고요, 서버에서 파일 날리는건 확인했는데 클라이언트에서 파일 수신이 안돼요ㅠㅠ
확인해보니까 fos에 new FOS(file f) 생성? 바인딩?에서부터 안되는거 같아서...프로그래머 분들의 조언 부탁드립니다!! <line 38입니다!!>
ps. file쪽의 path는 /mnt/sdcard/블라블라로 제대로 나오는거 확인했습니다.
public void connect()
{
try{
Socket socket=new Socket(MainActivity.servIP, MainActivity.servPort);
DataOutputStream dos;
DataInputStream dis;
dis=new DataInputStream(socket.getInputStream());
dos=new DataOutputStream(socket.getOutputStream());
byte[]flag=new byte[3];
byte[]num=new byte[1];
byte[]uID=new byte[17];
flag="05".getBytes("EUC_KR");
num=Integer.toHexString(contentNum).getBytes("EUC_KR");
uID=LoginActivity.usrName.getBytes("EUC_KR");
dos.write(flag);
dos.flush();
dos.write(num);
dos.flush();
dos.write(uID);
dos.flush();
String path=new String();
path=getFilePath(LoginActivity.usrName,fName);
File f=new File(path);
FileOutputStream fos;
BufferedOutputStream bos;
fos=new FileOutputStream(f);
Toast.makeText(getApplicationContext(),path,Toast.LENGTH_LONG).show();
//제대로 되는지 확인하기위해 넣은 토스트 메세지입니다. fos bos생성에서는 제대로 되는거 확인했는데, fos=new FileOutputStream(f); 여기서 안됩니다ㅠㅠ
bos=new BufferedOutputStream(fos);
int len;
int size = 512;
byte[] data = new byte[size];
while ((len = dis.read(data))>0)
{
bos.write(data);
}
bos.flush();
Toast.makeText(getApplicationContext(),path+"에 "+fName+"이 저장되었습니다.",Toast.LENGTH_LONG).show();
bos.close();
fos.close();
dos.close();
dis.close();
socket.close();
}catch (Exception e){
e.printStackTrace();
}
}