핸드폰에서 이미지 이름을 치면 서버(pc)에 지정된 폴더에 이미지 파일이 저장되는 건데요
이미지 파일이 깨져서 나오네요..ㅠㅠ
아주작은 이미지 파일은 되는데 그냥 보편적인 사진은 안되네요..
사진 사이즈가 문제인가요;;
제가 통신잘 몰라서요;;;상세히좀 알려주시면 복받으실꺼에요.ㅜㅜ
소스는 아래와 같습니다.
서버-----------
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer implements Runnable {
public static final int serverPort = 10200;
@Override
public void run() {
try {
System.out.println("대기중..");
ServerSocket serverSocket = new ServerSocket(serverPort);
while (true)
{
Socket sock = serverSocket.accept();
System.out.println("수신중....");
try {
BufferedReader in = new BufferedReader(new
InputStreamReader(sock.getInputStream()));
String str = in.readLine();
System.out.println("수신중인 파일 이름 : " + str);
File f = new File("c:\\down\\", str + ".jpg");
FileOutputStream output = new FileOutputStream(f);
byte[] buf = new byte[1024];
while (sock.getInputStream().read(buf) > 0)
{
output.write(buf);
output.flush();
}
in.close();
output.close();
System.out.println(str + ".jpg 수신완료");
}
catch (Exception e) {
System.out.println("서버 에러!!");
e.printStackTrace();
}
finally {
sock.close();
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] argv) {
Thread doit = new Thread(new TCPServer());
doit.start();
}
}
클라이언트-----------------------------------------
package sm.bit.sock;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Sock extends Activity {
private EditText myet;
private TextView mytv;
private Button mybtn;
public String remsg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myet = (EditText) findViewById(R.id.etv);
mytv = (TextView) findViewById(R.id.tv);
mybtn = (Button) findViewById(R.id.btn);
mybtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if ((mybtn.getText().toString() != null) &&
(!mybtn.getText().toString().equals(""))) {
TCPClient tp = new TCPClient(myet.getText().toString());
tp.run();
mytv.setText(myet.getText().toString());
myet.setText("");
}
}
});
}
}
package sm.bit.sock;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class TCPClient implements Runnable {
private static final String serverIP = "192.168.1.122";
private static final int serverPort = 10200;
private String msg;
public TCPClient(String msg) {
super();
this.msg = msg;
}
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(serverIP);
Socket sock = new Socket(serverAddr, serverPort);
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new
OutputStreamWriter(sock.getOutputStream())), true);
out.println(msg);
out.flush();
DataInputStream dis = new DataInputStream(new
FileInputStream(new File("/mnt/sdcard/" + msg + ".jpg")));
DataOutputStream dos = new DataOutputStream(
sock.getOutputStream());
byte[] buf = new byte[1024*1024];
while (dis.read(buf) > 0)
{
dos.write(buf);
dos.flush();
}
dos.close();
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
sock.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
부탁드립니다!!!!!!!!!!!!!!!!!!!!!!!!!!^^