java關於多線程的操作
一般服務器端代碼,每次收到一個線程,一個client就會產生:
/************************ 開始監聽 **************************/
int port = 4311;
ServerSocket server = null;//服務器
Socket client = null;//客户端
try {
server = new ServerSocket(port);
} catch (IndirectionException e1) {
tln("正在監聽……");
}
while(true)
{
tln("等待客户"+i);
i++;
try {
client = pt();//開始監聽線程,接收到client
tln("客户地址:" + netAddress());
} catch (IOException e1) {
tln("正在等待客户");
}
}
客户端代碼,啟動之後便會連接服務器,得到迴應之後便會形成socket連接
Socket clientsocket = null;
try {
clientsocket = new Socket("localhost",4311);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
tStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
tStackTrace();
}
socket的'輸入和輸出一般用流來相互寫。
()和e(),
Object()和eObject(object)。
客户端的一個線程裏面同時new了多個ObjectOutputStream流是不允許的,其它的流可以。ObjectOutputStream有鎖機制。
如果是一般的輸入和輸出流的話用:
DateOutputStream out = null;
DateInputStream in = null;
//獲得輸入輸出流
try {
out=new DateOutputStream(utputStream());
in=new DateInputStream(nputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
tStackTrace();
}
如果是對象上的輸入和輸出的話用:
ObjectOutputStream out = null;
ObjectInputStream in = null;
//獲得輸入輸出流
try {
out=new ObjectOutputStream(utputStream());
in=new ObjectInputStream(nputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
tStackTrace();
}
如果複雜之後,可以是服務器啟動之後對每個客户端啟動一個線程與客户端的線程進行交互。
-
2017年sun認證考試複習備考全攻略
Java以其平台無關性、面向對象、支持多線程等優點成為越來越多的程序開發人員的新寵,Java技術以其獨特的優勢在越來越多的領域得以使用和發展。作為程序開發人員,為了檢驗對Java掌握的程度,參加Sun公司的Java認證考試是比較好的一個方法。1.參加培訓或自學Java經...
-
sun認證JSP應用開發背景及特點
JSP將網頁邏輯與網頁設計和顯示分離,支持可重用的基於組件的設計,使基於Web的應用程序的開發變得迅速和容易。下面來看yjbys小編介紹吧!JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在...
-
Java學習要點彙總
Sun公司對Java編程語言的解釋是:Java編程語言是個簡單、面向對象、分佈式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。下面小編準備了關於Java的學習要點,提供給大家參考!1.你需要精通面向對象分析與設計(OOA/OOD)、涉及模式(GOF,J2EED...
-
2016年Sun認證重點試題
Sun公司推出了Java以及Solaris技術認證方案。對於企業而言,可以藉助這項認證作為招聘人才的`評判標準,或是作為衡量員工技術水準的依據;在個人方面,通過這些認證也可以證明個人的技術能力。下面是最新的sun認證考試題及答案,希望能幫助到大家!1.寫出此程序的輸出結...