來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-04-27 18:39:12
一般服務(wù)器端代碼,每次收到一個(gè)線(xiàn)程,一個(gè)client就會(huì)產(chǎn)生:
/************************ 開(kāi)始監(jiān)聽(tīng) **************************/
int port = 4311;
ServerSocket server = null;//服務(wù)器
Socket client = null;//客戶(hù)端
try {
server = new ServerSocket(port);
} catch (IndirectionException e1) {
System.out.println(“正在監(jiān)聽(tīng)。..”);
}
while(true)
{
System.out.println(“等待客戶(hù)”+i);
i++;
try {
client = server.accept();//開(kāi)始監(jiān)聽(tīng)線(xiàn)程,接收到client
System.out.println(“客戶(hù)地址:” + client.getInetAddress());
} catch (IOException e1) {
System.out.println(“正在等待客戶(hù)”);
}
}
客戶(hù)端代碼,啟動(dòng)之后便會(huì)連接服務(wù)器,得到回應(yīng)之后便會(huì)形成socket連接
Socket clientsocket = null;
try {
clientsocket = new Socket(“localhost”,4311);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
socket的輸入和輸出一般用流來(lái)相互寫(xiě)。
in.read()和out.write(),
in.readObject()和out.writeObject(object)。
客戶(hù)端的一個(gè)線(xiàn)程里面同時(shí)new了多個(gè)ObjectOutputStream流是不允許的,其它的流可以。ObjectOutputStream有鎖機(jī)制。
如果是一般的輸入和輸出流的話(huà)用:
DateOutputStream out = null;
DateInputStream in = null;
//獲得輸入輸出流
try {
out=new DateOutputStream(socket.getOutputStream());
in=new DateInputStream(socket.getInputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
如果是對(duì)象上的輸入和輸出的話(huà)用:
ObjectOutputStream out = null;
ObjectInputStream in = null;
//獲得輸入輸出流
try {
out=new ObjectOutputStream(socket.getOutputStream());
in=new ObjectInputStream(socket.getInputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
如果復(fù)雜之后,可以是服務(wù)器啟動(dòng)之后對(duì)每個(gè)客戶(hù)端啟動(dòng)一個(gè)線(xiàn)程與客戶(hù)端的線(xiàn)程進(jìn)行交互。
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線(xiàn): 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3