這個地方有問題,第一,你必須寫入newLine,要不會造成阻塞;第二,你必須先flush后才能讀服務器;第三,你從控制臺輸入應該有個結束標志,要不你在while里面把bw關閉了,你還怎么循環(huán)
成都創(chuàng)新互聯主要從事成都網站建設、成都網站設計、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務大姚,十多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
客戶端這個地方重寫一下,
while(true) {
temp=br.readLine();
if(temp.equals("over")){
break;
}
bw.write(temp);
bw.newLine();//如果沒有,使用readLine則會造成莫名等待
bw.flush();
}
不一定改全了,你先試試這些改動,如有問題再找
我也才寫了一個,我不想看代碼
你可以把發(fā)送和接受信息都寫在一個死循環(huán)里
客戶端:1.發(fā)送 2.接受
服務端:1.接受 2.發(fā)送
這個接收我第一個代碼用的BufferedRedaer br = new BufferedReader(new InputStreamReader(in))
br.readline();//這個是阻塞式的,不接受到消息它是不會往后執(zhí)行的,更ServerSocket里的accept方法一樣的
客戶端發(fā)送了就會卡在接受那,而服務器這邊就會收到,服務器就會執(zhí)行回復的輸入,回復輸入后,客戶端這邊就能接收到,就這樣循環(huán)
第一次寫的時候用的是PrintWriter進行發(fā)送,用inputstream的read方法讀出來會不對
printwriter的write方法就是寫入緩存,要用到String的getbytes方法,注意要使用flush方法清空緩存
讀取用的是BufferedReader
java的大方向就是j2ee
j2ee不僅僅是socket編程,具體包括13中核心技術。
J2EE的核心API與組件
J2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發(fā)基于Web的多層應用提供了功能支持,下面對J2EE中的13種技術規(guī)范進行簡單的描述(限于篇幅,這里只能進行簡單的描述):
1. JDBC(Java Database Connectivity):
JDBC API為訪問不同的數據庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發(fā)者屏蔽了一些細節(jié)問題,另外,JDCB對數據庫的訪問也具有平臺無關性。
2. JNDI(Java Name and Directory Interface):
JNDI API被用于執(zhí)行名字和目錄服務。它提供了一致的模型來存取和操作企業(yè)級的資源如DNS和LDAP,本地文件系統,或應用服務器中的對象。
3. EJB(Enterprise JavaBean):
J2EE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發(fā)和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業(yè)級應用的開發(fā)。EJB規(guī)范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB并不是實現J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。
4. RMI(Remote Method Invoke):
正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和服務器端傳遞數據。RMI是一種被EJB使用的更底層的協議。
5. Java IDL/CORBA:
在Java IDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對象并使之可在CORBA ORB中展開, 或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將你的新的應用和舊的系統相集成。
6. JSP(Java Server Pages):
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
7. Java Servlet:
Servlet是一種小型的Java程序,它擴展了Web服務器的功能。作為一種服務器端的應用,當被請求時開始執(zhí)行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。
8. XML(Extensible Markup Language):
XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。
XML的發(fā)展和Java是相互獨立的,但是,它和Java具有的相同目標正是平臺獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺獨立性的解決方案。
9. JMS(Java Message Service):
MS是用于和面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,有支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另
一種方式來對您的應用與舊的后臺系統相集成。
10. JTA(Java Transaction Architecture):
JTA定義了一種標準的API,應用系統由此可以訪問各種事務監(jiān)控。
11. JTS(Java Transaction Service):
JTS是CORBA OTS事務監(jiān)控的基本的實現。JTS規(guī)定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規(guī)范,并且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。
12. JavaMail:
JavaMail是用于存取郵件服務器的API,它提供了一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器。
13. JAF(JavaBeans Activation Framework):
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。
第一個階段(java基礎階段)
1.java語法
2.面向對象
3.常用的api
4.界面編程
5.多線程
6.文件io
7.java網絡編程..
看看 張孝祥老師的 java視頻 (不過張孝
祥老師普通話不是很好,而且語速很慢,不過技術是不用說的啦!感謝張老師的無私奉獻了,呵呵)
第二個階段 (數據庫階段)
1.oracle
2.mysql
3.sql server
目前中國軟件公司用的最多的三大主流數據庫是sql server,mysql ,oracle .目前看來oracle數據庫越來越流行了。一般情況下PHP對應MySQL數據庫;ASP對應SQL數據庫;JSP對應ORACLE數據庫。所以大家會經???/p>
到市場上JAVA培訓都是用的ORACLE數據庫,其實你學會了ORACLE數據庫,再去學習MySQL、SQL數 據庫,你會覺得有很多相似的之處,學起來也容易上手了。oracle我推薦
韓順平老師 oracle視頻 (韓老師授課很有趣,特適合基礎不太好的人。講課有一套)
第三個階段 (web開發(fā)階段)
1.html
2.css
3.javascript
這三個部分是進行web開發(fā)的必須技術.一定要好好學習.不過我當時沒有發(fā)現有講的特別好的。好像很多老師都講框架和后臺,界面這塊不多,所以就沒有什么好推薦的了,大家可以
在網上找找看看,別具光芒 這本書講的挺好,不過不太適合初學者,可以看看孫鑫老師視頻的《HTML語言速成》。
第四個階段 (j2ee 中級部分)
1.servlet
2.jsp
3.mvc
這個階段是接近企業(yè)的需求了,所以學習起來,難度偏大,如果前面沒有學習扎實,會比較麻煩,我就是這樣的,前面沒有吃透,就學習j2ee 中級,搞得我消化不良。所以小弟我中心的告誡大家,把前面的學好,再學習第四個階段,這里的mvc思想不太好理解,是學習的重點。同時要學習tomcat/jboss/wl 這些服務器所以,你可能感到要學習的東西一下多了很多,其實我就在這里動搖過,有那么一段時間,又想放棄了??墒且幌氲?房東那種不屑的表情,我就想,一定要好好學習,混出個人樣來。我家是農村的,回去就是種地,當公務員我沒有關系,再說會老家我學習的專業(yè)也用不上,要不就是當個網管什么的,不說了,反正當時心情很復雜吧。這個階段我推薦
韓順平老師 servlet視頻 jsp視頻 (這里也特別謝謝韓順平老師,我是比較喜歡他講課的風格,因為我當時基礎不好,所以不敢看講的太理論的課。)
第五個階段 (j2ee 高級部分)
1.struts
2.hibernate
3.spring
學習完Servlet、JSP然后再去學習框架Struts、Hibernate、Spring等最前沿的最流行的網絡編程必備的軟件技能。
推薦的參考書籍是美河圖書提供《Servlet與JSP核心編程》
框架的基礎就是Servlet、JSP。首先大家應該學習的是Struts框架,典型的MVC模型。推薦學習視頻是 張小靜的Struts視頻。(網上有孫鑫的視頻嘛,主要就是講的Struts、Hibernate、Spring這三個框架,但是這個好像是偷錄的效果不好,聽起來比較吃力,銜接的不好)
推薦書籍孫衛(wèi)琴編著《精通Struts基于MVC的Java.Web設計與開發(fā)》
然后就是Hibernate框架,推薦李興華老師的Hibernate視頻,
參考書籍孫衛(wèi)琴 《精通Java對象持久化技術詳解》
最后關于Spring框架的視頻,在網上你可以搜索到很多,但是系統講解的真的沒有發(fā)現,本著對大家負責的態(tài)度,不敢亂推薦,大家到網上搜一下,也許現在有了也可能。
學完上述三個階段的內容,就在看看xml,ajax,ejb這些知識!尤其是的Ajax用得非?;?,我們公司就用,ajax的框架流行的是(jquery,dw),我們公司用的是jquery.這里提一 下,學習Ajax之前一定要有JavaScript的基礎,推薦視頻張孝祥JavaScript網頁開發(fā),這套視頻有相應 的配套書籍《JavaScript網頁開發(fā)》
這兩個六不需要close掉啊,最多是你在搞定之后需要close掉socket啊。
這兩個都是你自己的方法里面的局部變量,在你每次調用完這個方法之后,java的資源回收機制會自動釋放這些資源,不需要你手動close。