第一次使用套接字socket程式設計

2021-08-15 10:19:43 字數 1700 閱讀 9964

伺服器端

server = new serversocket(18811);//18811為埠號
這樣就可以建立好乙個socket服務端

socket socket = server.accept();//accept()阻塞型獲取客戶端連線方式

in = new inputstreamreader(socket.getinputstream());//封裝socket輸入流

out = new outputstreamwriter(socket.getoutputstream());//封裝輸出流

獲取客戶端傳送來的訊息

阻塞型socekt連線時要寫死迴圈多執行緒來獲取客戶端傳送的訊息

char tmp = new

char[2048];

int len = 0;

inputstreamreader in = new inputstreamreader(socket.getinputstream());

if ((len = in.read(tmp)) != -1)

}}

傳送給客戶端訊息

out.write("");//輸出流寫入內容

out.flush();//重新整理輸出流.不重新整理就得遇見/n /t等標識才可以輸出或是斷開連線才可輸出

多個socket客戶端連線時可以寫死迴圈獲取socket物件,將socket物件執行緒寫入集合中

在集合中進行輸入輸出流的操作

伺服器沒辦法知道客戶端是否還在連線狀態

(網上的心跳包或者是一些判斷操作大部分進行了嘗試失敗,暫時只有給客戶端傳送訊息時丟擲異常時結束socket連線)

//結束socket連線

in.close();

out.close();

socket.close();

spring和socket伺服器使用時socekt如果要在專案啟動時啟動的話

"servessocket" class="com.qintang.medlab.iotservers.serversini" init-method="start" lazy-init="true" > 

//可以載入乙個bean

//socket伺服器啟動時多執行緒需要載入service控制器介面時可以使用

import org.springframework.beans.bean***ception;

public

private

@override

public

void

throws bean***ception

public

static object getbean(string name)

}//然後在spring xml配置檔案中在伺服器啟動前載入乙個bean

"springcontexthelper"class="**.**.**.util.springcontexthelper">

//在使用的時候

bean = (iotdevicedao) springcontexthelper.getbean("iotdevicedao");

可以看看的**

第一次使用crontab linux選擇編輯器問題

第一次使用crontab linux選擇編輯器問題 第一次使用crontab 時,會出現 no crontab for root using an empty one select a editor 下面有幾個選項,就是叫你選擇編輯器。選vim 就可以了,我選的第三個。但是如果你選錯了,就可能會遇到...

第一次使用

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

第一次使用

test 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 ...