日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中利用socket实现简单的服务端与客户端的通信(入门级)

發布時間:2025/3/21 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中利用socket实现简单的服务端与客户端的通信(入门级) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java編程中,要想要使用網絡通信,就離不開Socket編程,在此對socket進行簡單的介紹。首先聲明,這是一個入門級的介紹,僅僅簡單的實現了客戶端向服務端發送數據,服務端正常的接收數據,當接收到特定的數據時,服務端和客戶端都關閉,一個服務端對應一個客戶端,不涉及多線程等內容,一切都是最簡單最基礎的知識點。

下面給出的代碼,可以直接拷貝到eclipse中運行, 無需任何更改。

關于socket和seversocket的原理以及構造函數等一些簡單的介紹,可以查看其他的一些博客,期中寫的比較清晰,我給大家推薦一個[Java]Socket和ServerSocket學習筆記?。期中關于socket的通信原理和需要基本了解的一些構造函數,常用函數等,都進行了簡單的介紹。

開發環境為eclipse,新建兩個普通的Java工程,一個命名為server_1,作為服務端,另一個命名為client_1,作為客戶端,完成的功能就是在客戶端的控制臺輸入內容后,客戶端將內容發送至服務端,在服務端的控制臺可以看到輸入的內容,當輸入的內容為shutdown時,服務端和客戶端都關閉通信,通信結束。

服務端代碼:

package server_1;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class server_1 { public static void main(String[] args) throws IOException { //將異常全部拋出 ServerSocket server = new ServerSocket(10000); //用serversocket來啟動服務器,并指定端口號System.out.println("服務器啟動。。。");Socket socket = server.accept(); //獲取客戶端的socket信息BufferedReader in = null; in = new BufferedReader(new InputStreamReader(socket.getInputStream())); //啟動緩沖區 while (true) { String msg = in.readLine(); // 將客戶端發送來的信息存儲在msg中 System.out.println(msg); if (msg.equals("shutdown")) { //客戶端如果發送的是shutdown,就關閉客戶端break; } }in.close(); //執行相應的關閉操作 } }考慮這是一個入門級的程序,所以暫時不考慮各種異常情況,咋mian函數的后面就講各種異常拋出。

建立seversocket,并且指定服務器的端口號為10000,此時服務器端開始運行。(端口號盡量取大于1024的數字,小于1024的一般都是系統程序占用)

然后利用socket實現和客戶端的連接。

in是一個輸入緩沖區,客戶端發送來的信息就暫時存儲在這個緩沖區中。

然后用while語句,循環的監聽客戶端發送過來的數據,當是一般信息時,就講客戶端發來的內同打印到控制臺,如果是“shutdown”,則關閉服務器端,此次通信終止。


客戶端程序:

package client_1;import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket;public class client_1 { public static void main(String[] args) throws Exception { System.out.println("客戶端啟動");Socket socket = new Socket("localhost", 10000); //啟動socket,并連接本地主機的相應端口號PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//從控制臺獲取輸入的內容 //不斷的獲取輸入的內容,并不斷的發送給服務器,當輸入shutdown時,跳出循環,停止運行while (true) { String msg = reader.readLine(); out.println(msg); out.flush(); if (msg.equals("shutdown")) { break; } } //執行相應的關閉操作socket.close();out.close();reader.close();} }
同樣也是在main函數后就拋出所有的異常,不考慮一些比較復雜的異常情況。

建立socket來準備進行通信,指定服務端的位置為“localhost”(也就是本機,也可以使用IP:127.0.0.1),端口號要和服務器端的端口號對應,為10000。
建立reader為緩沖區,將控制臺輸入的內容先存儲到緩沖區中。

建立out用來發送數據。

通過while循環監聽控制臺,通過socket將緩沖區的內容發送到服務端,如果輸入的是一般結果,則將內容發送給服務端,如果輸入的時“shutdown”,則將內容發送后跳出循環, 此次通信結束。


以上就是關于socket通信的一個非常簡答的例子。


2015年11月19日 ? 西安交通大學

總結

以上是生活随笔為你收集整理的Java中利用socket实现简单的服务端与客户端的通信(入门级)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。