看板java
標 題Re: 請教一下要如何把一各object丟到socket getouputstream?!....
發信站清華資訊(楓橋驛站) (Sun Aug 8 01:13:44 2004)
轉信站ptt!ctu-reader!ctu-peer!news.nctu!news.csie.ncyu!news.cs.nthu!maple
※ 引述《[email protected] (otp)》之銘言:
> 請教一下要如何把一各object丟到socket的.....getouputstream?!....
> THANX
簡單來講 你應該有寫類似Server和Client的class來建立TCP連線
我想你應該是要問..怎麼傳送Object到另一方?
在Server裡頭你應該有用到ServerSocket還有Socket
在Client裡頭你應該有用到Socket
假設在Server裡頭你宣告了 Socket acceptedSocket
在Client裡頭你宣告了 Socket clientSocket
這兩個socket代表Server-Client溝通的Channel
如果你想在Server裡頭寫接收和傳送Object的Method,你可以參考一下:
//一開始先宣告
ObjectInputStream OIS = null;
ObjectOutPutStream OOS = null;
//接收來自於Client端的Object
public void rcvObject()
{
try{
OIS = new ObjectInputStream(acceptedSocket.getInputStream());
}
catch(Exception e) {}
}
//傳送Object到Client端
public void sndObject()
{
try{
OOS = new ObjectOutputStream(acceptedSocket.getOutputStream());
OOS.writeUTF(....); //....表你想要傳送給Client的東西
OOS.flush();
}
catch(Exception e) {}
}
下面是Client裡頭接收和傳送的Method:
//一開始先宣告
ObjectInputStream OIS = null;
ObjectOutPutStream OOS = null;
//接收來自於Server端的Object
public void rcvObject()
{
try{
OIS = new ObjectInputStream(clientSocket.getInputStream());
}
catch(Exception e) {}
}
//傳送Object到Server端
public void sndObject()
{
try{
OOS = new ObjectOutputStream(clientSocket.getOutputStream());
OOS.writeUTF(....); //....表你想要傳送給Server的東西
OOS.flush();
}
catch(Exception e) {}
}
----
注意一下在實作Server-Client的接收傳送的方法時
最好將rcvObject()還sndObject()兩個方法另外用Thread去執行
否則整個Program在執行時會發生因為空等造成Idle的情形
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: u16-14.u203-187.giga.net.tw