제가 C 네트웤 플밍은 해봤는데
JAVA가 서툴어서 잘 모르겠습니다. 고수님들 도와주세요
서버로 객체를 보내는거 해야되는데 C랑 다르게 뭔가 계속 걸리네요
직렬화 해야 된데서 직렬화도 했는데 잘 안돼서 질문드립니다.
여기가client 부분인데요 간단하게
edit 박스 2개로 2개의 스트링을 받아서 서버로 보냅니다.(connecting은 되요.)
public class asdActivity extends Activity {
private String html = "";
private Handler mHandler;
private Socket client;
private String name;
ObjectOutputStream oos;
private String ip = "192.168.56.198"; // IP
private int port = 9000; // PORT번호
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mHandler = new Handler();
try {
setSocket(ip,port);
}
catch (IOException e1) {
// TODO Auto-generated catch block
System.out.print("!nonon");
e1.printStackTrace();
}
final EditText text = (EditText) findViewById(R.id.EditText01);
final EditText text2 = (EditText) findViewById(R.id.EditText02);
Button button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
if(text.getText()!=null)
{
//PrintWriter out = new PrintWriter(networkWriter,true);
Data query = new Data();
query.id = text.getText().toString();
query.password = text2.getText().toString();
try {
oos.writeObject(query);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//아래 생략
===Server 쪽입니다.=====
package wdb;
public class getset implements Runnable{
public static final int ServerPort = 9000;
public static final String ServerIP = "192.168.56.198";
public void run()
{
try {
System.out.println("S: Connecting...");
ServerSocket serverSocket = new ServerSocket(ServerPort);
while (true) {
Socket client = serverSocket.accept();
Object obj;
Data query = new Data();
System.out.println("S: Receiving...");
System.out.println("S: Re11122111111ceiving...");
try {
ObjectInputStream ois = new ObjectInputStream(client.getInputStream());
System.out.println("S: Re11122111111ceiving...");
query = (Data)ois.readObject();
System.out.println("S: Re" + "c2222eiving...");
System.out.println("S: Received: '" + query.id + "'");
//PrintWriter out = new PrintWriter(new BufferedWriter(
//new OutputStreamWriter(client.getOutputStream())),true);
//out.println("Server Received " + str);
} catch (Exception e) {
System.out.println("S: Error");
e.printStackTrace();
} finally {
client.close();
System.out.println("S: Done.");
}
}
} catch (Exception e) {
System.out.println("S: Error");
e.printStackTrace();
}
}
public static void main(String[] args)
{
Thread desktopServerThread = new Thread(new getset());
desktopServerThread.start();
}
}
이런 에러가 계속 나요...
서버 랑 클라이언트 둘다 Data.java 씨리얼라이즈 했는데 왜 자꾸 클래스를 못찾을까요...ㅠㅠ
가르쳐주세요 급해ㅔ요...ㅠㅠ
java.lang.ClassNotFoundException: kr.asd.Data
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:621)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1592)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at wdb.getset.run(getset.java:44)
at java.lang.Thread.run(Thread.java:636)