1. java網路
其實dos.writeUTF("hi,hello");根本沒有被執行到,原因是你的循環退出的條件是InputStream讀出的內容為null,而這里除非發生異常或者網路中斷,否則讀到Stream結尾的時候read方法會得到-1,也不是null。因此Server端就不會退出循環。
你可以將dos.writeUTF("hi,hello");放到循環內,就可以看到客戶端能夠讀到該信息了。
2. Java 網路編程
import java.io.*;
import java.net.*;
public class Sendserver
{
public static int port = 3333;
public static void main(String[] args) throws IOException
{
ServerSocket s = new ServerSocket(port);
Socket d= s.accept();
System.out.println("客戶端連接成功");
DataInputStream input = new DataInputStream(d.getInputStream());
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(
new BufferedOutputStream(new FileOutputStream(
"2.mp3"))));
while (true)
{
int read = 0;
if (input != null)
read = input.read(buf);
if (read == -1)
break;
byte[] temp=new byte[read];
for(int i=0;i<read;i++)
temp[i]=buf[i];
fileOut.write(temp);
}
fileOut.close();
System.out.println("傳送完畢");
}
}
import java.io.*;
import java.net.*;
public class SendClient
{
public static void main(String[] args) throws UnknownHostException, IOException
{
try{
DataInputStream iinput = new DataInputStream(new BufferedInputStream(
new FileInputStream("1.mp3")));
InetAddress addr = InetAddress.getByName("localhost");
Socket f= new Socket(addr,3333);
OutputStream output=f.getOutputStream();
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
while (true)
{
int read = 0;
if (iinput != null)
read = iinput.read(buf);
if (read == -1)
break;
byte[] temp=new byte[read];
for(int i=0;i<read;i++)
temp[i]=buf[i];
output.write(temp);
output.flush();
}
iinput.close();
output.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
改動相當大,你自己看看吧。
3. java為什麼適合網路開發
Java
JAVA 是 Sun 公司推出的新一代面向對象的程序設計語言, 由於它與生俱來的一些特性, 比如: 平台無關, 多線程, 內置 URL 操作, 高度安全性等等, 使得它特別適合於網路應用程序的開發. 經過多年的發展, JAVA 已經成為這方面的主流編程語言. 而且, 隨著 Internet 的崛起, JAVA 將會有更大的發展.
在 JAVA 流行之前, C++ 已經流行很久了, 幾乎在第三代編程語言中起統治地位, 初學 JAVA 的人會覺得兩者很像. 事實上, 可以說 JAVA 就是脫胎與 C++, 但同時又做了相當大的改變, 使其更加符合網路編程的需要.
JAVA幾個重要的特性:
Easy :Java的語法比C++的相對簡單,另一個方面就是Java能使軟體在很小的機器上運行,基礎解釋其和類庫的支持的大小約為40kb,增加基本的標准庫和線程支持的內存需要增加125kb。
分布式 :Java帶有很強大的TCP/IP協議族的常式庫,Java應用程序能夠通過URL來穿過網路來訪問遠程對象,由於servlet機制的出現,使Java編程非常的高效,現在許多的大的web server都支持servlet。
OO :面向對象設計是把重點放在對象及對象的介面上的一個編程技術.其面向對象和C++有很多不同,在與多重繼承的處理及Java的原類模型。
健壯特性 :Java採取了一個安全指針模型,能減小重寫內存和數據崩潰的可能型。
安全 :Java用來設計網路和分布系統,這帶來了新的安全問題,Java可以用來構建防病毒和防攻擊的System.事實證明Java在防毒這一方面做的比較好。
中立體系結構 :Java編譯其生成體系結構中立的目標文件格式可以在很多處理器上執行,編譯器產生的指令位元組碼(Javabytecode)實現此特性,此位元組碼可以在任何機器上解釋 執行。
所以它較慢。
可移植性 :Java中對基本數據結構類型的大小和演算法都有嚴格的規定所以可移植性很好。
多線程 :Java處理多線程的過程很簡單,Java把多線程實現交給底下操作系統或線程程序完成.所以多線程是Java作為伺服器端開發語言的流行原因之一 。
Applet和servlet :能夠在網頁上執行的程序叫Applet,需要支持Java的瀏覽器很多,而applet支持動態的網頁,這是很多其他語言所不能做到的。
引自不同網路
4. java怎麼實現網路數
heritrix抓取網頁
網頁解析的有很多就不說了,不過最好自己寫
lucene索引
首先爬蟲是需要一個處理器鏈的,網頁的抓取並非幾十行代碼就能實現的,因為有很多問題出
現。
1.獲取網頁:判斷網頁編碼,計算網頁正文位置,獲取頁面內url(url的過濾、緩存、存儲這部分還需要線程池的優化),url的分配、及線程池的啟動。
2.網頁持久化。網頁解析,網頁中樣式表、圖片等下載以及網頁的保存(xml和html)網頁快照的生成。
3.網頁的消重去噪:去掉沒用的網頁,如果是垂直搜索引擎則需要更多的判斷,可以利用內容模板和空間向量的演算法實現。
4.索引的建立及優化,主要是簡歷倒排索引。
你的分類基本上可以用內容模板和空間向量計算實現。
還有其他很多東西,一時間不能說細了。你想做到什麼程度。(比如:空間向量的演算法及結果的參考值、網頁內容模板的建立。)
5. 計算機網路開發java
java是現在比較主流的開發語言,,在醫療、物流、金融等管理系統方面應用得非常多。學習一樣東西有沒有用要看它的使用價值,現在需要的人才不單單是會簡單的編程,而且是全方面的,業務和其他能力也很重要,可以說學了java你可以做一個程序員,找到工作也沒問題,但是要真正深入企業業務,要工資有所提升則還要實踐一段時間,充分融入到業務中去。
6. java網路編程包含些什麼
java網路編程通常包括三部分TCP/IP , UDP ,URL ;socket只是其中的一個套接字。web,jsp與上面一點關系也沒有,上面是j2se的內容。下面則是j2ee內容。web是一個服務,而jsp是一種技術。實在找關系的話,web包括了jsp.
7. java網路環境如何設置
JDK安裝完成以後,如果你沒有設置好環境變數,那就必須切換到BIN目錄才能執行javac java等命令.
如果想在任意路徑下都可以執行JAVAC等命令,那就必須配置一下系統環境變數.如圖
我的是WIN7,你的系統不一樣,就自己找吧
在"計算機"上右鍵,屬性,左側有一個高級系統設置,點開.
8. java是網路編程語言嗎
SEO 布布為你解答:java[是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台(即JavaEE, JavaME, JavaSE)的總稱。Java自面世後就非常流行,發展迅速,對C++語言形成了有力沖擊。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。
上面可能樓主看的不是很懂,我跟你簡答的解釋一下,JAVA這款軟體是一個腳本語言,舉個例子說,許願牆、什麼動畫效果,有的就是用JAVA 來實現的,不懂可以繼續追問哦
9. java網路編程
bw.flush();
10. java網路流的問題
問題出在這里buf=str.getBytes();
這一句把getBytes() 返回的引用賦給了buf所以buf 指向的已經不是原來的new byte[100];的內存空間了,那麼這個byte 數組的長度和內容都不是原來的那樣了。
--JAVA 中除了基本類型 (int double char ... 是值傳遞之外,其它的都是引用傳遞,了解C或C++的朋友都很容易理解,java 里所有的對象的實例都是放在它預先申請的堆內存裡面的--方面它管理內存)
**************************補充********************************
你的程序結運行結果應是這樣的
1,有server端On Server... I am client□□□□□□□□□□□□□□□□□□□□□□□□□□□□
2 在client端 On client... message form server...□□□□□□□□□□□□□□□□□□□□□□□□□□□□
運行的時候,要先運行server端的,不然server 和client都會處於阻塞狀態。
至於為什麼怎麼會有這么多的小格子,是這樣的,你讀數據的時候應加一個記錄讀入長度的標記int len =in.read(bufR);
String str=new String(bufR,len);這樣空格就會沒有了。因為java 和C或C++不一樣,C和C++string 都是一個以\0結尾 char 數組,程序從數組頭讀到\0就結束不管這個char 數組還有多大。java 的String 對象設計得不一樣,它用兩個byte 儲存一個char 所以你長度為100的byte數組只能存50個字;。。。。
任何疑問
[email protected]
blog.csdn.net/shmilyhe