ArrayList 객체를 소켓으로 전송할때...
객체 직렬화를 통해 소켓으로 객체를 전송할 수 있다..
send.java (송신)
data.java (직렬화)
receive.java (수신)
=======================================send.java===================
import java.util.ArrayList;
import java.net.Socket;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
...
public class 전송{ .....
ArrayList list = new ArrayList();
for (int i = 0; i < 100; i++) { //100개의 arraylist를 만든다.
list.add("1234");
}
if(list.size() > 0){
Socket ssoc = null;
OutputStream sos = null;
ObjectOutputStream soos = null;
try{
ssoc = new Socket(서버 아이피, 포트);
sos = ssoc.getOutputStream();
soos = new ObjectOutputStream(sos);
//객체 직렬화를 통해 List 객체를 소켓으로 보냄
Data d = new Data(); // 아래의 Data.java 객체 생성(직렬화)
d.setList(list);
soos.reset();
soos.writeObject(d);
soos.flush();
soos.close();
sos.close();
ssoc.close();
}catch(Exception e){
logger.error("#"+e.toString());
}finally{
}
==============================data.java===============
import java.io.Serializable;
import java.util.ArrayList;
public class Data implements Serializable{
ArrayList list;
public ArrayList getList() {
return list;
}
public void setList(ArrayList list) {
this.list = list;
}
}
=========================receive.java=======================
import java.util.ArrayList;
import java.net.Socket;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
public class 수신 {....
try {
soc = new Socket(아이피, 포트);
soc.setKeepAlive(true);
is = soc.getInputStream();
ois = new ObjectInputStream(is);
while (true) {
logger.info("incoming data");
try {
//객체 직렬활를 이용한 입력
//파일 서버로 부터 정보를 받는다. 리스트 객체를 직렬화를 통해 소켓으로 받음
Data d = (Data) ois.readObject();
ArrayList list = new ArrayList();
list = (ArrayList) d.getList();
if (list.size() > 0) {
//전송받은 데이터 처리
} else {
}
Thread.sleep(50);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (UnknownHostException e) {
logger.error(e.getMessage());
isStoped = true;
try {
if (soc != null)
soc.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (IOException e) {
logger.error(e.getMessage());
try {
if (soc != null)
soc.close();
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (Exception e) {
}finally{
try {
if (soc != null)
soc.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
'Java' 카테고리의 다른 글
java.lang.UnsupportedClassVersionError: Bad version number in .class file 에러 날때.. (0) | 2009.05.06 |
---|---|
간단한 스케줄링 데몬 만들기.. (0) | 2008.11.25 |
POI 이용해 엑셀파일 읽기 (0) | 2008.07.28 |
자바 메일 발송하기. (0) | 2008.07.28 |
jxl.jar 이용해서 엑셀파일 읽어 들이기~ (0) | 2008.07.24 |