這篇文章主要介紹Java網(wǎng)絡(luò)編程之TCP程序設(shè)計的示例分析,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),烏什企業(yè)網(wǎng)站建設(shè),烏什品牌網(wǎng)站建設(shè),網(wǎng)站定制,烏什網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,烏什網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。[1] TCP編程的主要步驟
客戶端(client):
1.創(chuàng)建Socket對象,構(gòu)造方法的形參列表中需要InetAddress類對象和int型值,用來指明對方的IP地址和端口號。
2.通過Socket對象的getOutputStream()方法返回OutputStream抽象類子類的一個對象,用來發(fā)送輸出流。
3.通過輸出流的write方法輸出具體的信息。
4.關(guān)閉相應(yīng)的流和Socket對象。
服務(wù)端(server):
1.創(chuàng)建ServerSocket類的對象,在構(gòu)造器中指明端口號。
2.調(diào)用ServerSocket類對象的accept()方法,返回一個Socket類的實例。
3.通過Socket實例的getInputStream()方法獲取一個輸入流,用來接收來自客戶端的信息。
4.利用輸入流接收數(shù)據(jù),并處理數(shù)據(jù)。
5.關(guān)閉相應(yīng)的流、Socket對象、ServerSocket對象。
[2] Java源程序 ( 注意:在測試時先開啟服務(wù)端方法server(),再開啟客戶端方法client() )
package pack01; import java.io.*; import java.net.*; import org.junit.Test; public class TestNet1 { @Test //***********************客戶端測試方法*********************** public void client() { Socket socket = null; //建立客戶端網(wǎng)絡(luò)套接字 OutputStream socket_os = null; //客戶端輸出流 try { //1.獲取本機環(huán)路地址 InetAddress inet = InetAddress.getByName("127.0.0.1"); //2.創(chuàng)建Socket對象 socket = new Socket(inet, 10000); //3.獲取輸出流 socket_os = socket.getOutputStream(); //4.客戶端輸出信息 socket_os.write( "客戶端發(fā)送信息".getBytes() ); } catch (IOException e) { e.printStackTrace(); } finally { try { //關(guān)閉輸出流 socket_os.close(); } catch (IOException e) { e.printStackTrace(); } try { //關(guān)閉客戶端套接字 socket.close(); } catch (IOException e) { e.printStackTrace(); } } } @Test //***********************服務(wù)端測試方法*********************** public void server() { ServerSocket serSocket = null; Socket socket = null; InputStream socket_is = null; try { serSocket = new ServerSocket(10000); socket = serSocket.accept(); //獲取服務(wù)端套接字 socket_is = socket.getInputStream(); //獲取輸入流 byte[] b = new byte[100]; //用于接收信息的字節(jié)數(shù)組 int len; StringBuffer sb = new StringBuffer(); while( (len = socket_is.read(b)) != -1 ) { sb.append( new String(b,0,len) ); //將字節(jié)信息連續(xù)保存在buffer數(shù)組里 } System.out.println("來自" + socket.getInetAddress().getHostName() + "的信息:"); System.out.println( sb ); } catch (IOException e) { e.printStackTrace(); } finally { try { //關(guān)閉輸入流 socket_is.close(); } catch (IOException e) { e.printStackTrace(); } try { //關(guān)閉Socket對象 socket.close(); } catch (IOException e) { e.printStackTrace(); } try { //關(guān)閉ServerSocket對象 serSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
以上是“Java網(wǎng)絡(luò)編程之TCP程序設(shè)計的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!