今天就跟大家聊聊有關(guān)Java中怎么利用TCP/IP協(xié)議收發(fā)數(shù)據(jù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了上杭免費(fèi)建站歡迎大家使用!注:
只有服務(wù)端,沒有客戶端,測試時(shí)采用第三方軟件作為客戶端的。
收發(fā)數(shù)據(jù)目前能正常收發(fā)數(shù)據(jù),只是中文的會(huì)變成亂碼顯示。
采用Thread類實(shí)現(xiàn)一個(gè)收發(fā)數(shù)據(jù)的線程。
服務(wù)端代碼:
import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Server { //監(jiān)聽端口 private static final int PORT = 60020; public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; Socket socket = null; try { //建立服務(wù)器的Socket,并設(shè)定一個(gè)監(jiān)聽的端口PORT serverSocket = new ServerSocket(PORT); //由于需要進(jìn)行循環(huán)監(jiān)聽,因此獲取消息的操作應(yīng)放在一個(gè)while大循環(huán)中 while(true){ try { //建立跟客戶端的連接 socket = serverSocket.accept(); } catch (Exception e) { System.out.println("建立與客戶端的連接出現(xiàn)異常"); e.printStackTrace(); } ServerThread thread = new ServerThread(socket); thread.start(); } } catch (Exception e) { System.out.println("端口被占用"); e.printStackTrace(); } finally { serverSocket.close(); } }}//服務(wù)端線程類//繼承Thread類的話,必須重寫run方法,在run方法中定義需要執(zhí)行的任務(wù)。class ServerThread extends Thread { private Socket socket ; InputStream inputStream; OutputStream outputStream; public ServerThread(Socket socket){ this.socket=socket; } public void run(){ try { while (true){ //接收客戶端的消息并打印 System.out.println(socket); inputStream=socket.getInputStream(); byte[] bytes = new byte[1024]; inputStream.read(bytes); String string = new String(bytes); System.out.println(string); //向客戶端發(fā)送消息 outputStream = socket.getOutputStream(); outputStream.write("OK".getBytes()); System.out.println("OK"); } } catch (Exception e) { System.out.println("客戶端主動(dòng)斷開連接了"); //e.printStackTrace(); } //操作結(jié)束,關(guān)閉socket try{ socket.close(); }catch(IOException e){ System.out.println("關(guān)閉連接出現(xiàn)異常"); e.printStackTrace(); } }}
先開啟服務(wù)端,再開啟客戶端,進(jìn)行操作。
客戶端:
(端口號(hào)選擇“TCPClient”,遠(yuǎn)程填寫IP地址和程序里設(shè)定好的端口“60020”,本地選擇自己電腦的IP地址)
看完上述內(nèi)容,你們對Java中怎么利用TCP/IP協(xié)議收發(fā)數(shù)據(jù)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁標(biāo)題:Java中怎么利用TCP/IP協(xié)議收發(fā)數(shù)據(jù)-創(chuàng)新互聯(lián)
標(biāo)題來源:http://jinyejixie.com/article8/dehiop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、電子商務(wù)、云服務(wù)器、虛擬主機(jī)、標(biāo)簽優(yōu)化、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容