最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Socket通信(一)之客戶端程序 發(fā)送和接收數(shù)據(jù)

 更新時(shí)間:2016年03月17日 13:48:49   作者:紫巖淵  
對(duì)于Socket通信簡(jiǎn)述,服務(wù)端往Socket的輸出流里面寫(xiě)東西,客戶端就可以通過(guò)Socket的輸入流讀取對(duì)應(yīng)的內(nèi)容,Socket與Socket之間是雙向連通的,所以客戶端也可以往對(duì)應(yīng)的Socket輸出流里面寫(xiě)東西,然后服務(wù)端對(duì)應(yīng)的Socket的輸入流就可以讀出對(duì)應(yīng)的內(nèi)容

網(wǎng)絡(luò)應(yīng)用分為客戶端和服務(wù)端兩部分,而Socket類是負(fù)責(zé)處理客戶端通信的Java類。通過(guò)這個(gè)類可以連接到指定IP或域名的服務(wù)器上,并且可以和服務(wù)器互相發(fā)送和接受數(shù)據(jù)。

對(duì)于Socket通信簡(jiǎn)述,服務(wù)端往Socket的輸出流里面寫(xiě)東西,客戶端就可以通過(guò)Socket的輸入流讀取對(duì)應(yīng)的內(nèi)容。Socket與Socket之間是雙向連通的,所以客戶端也可以往對(duì)應(yīng)的Socket輸出流里面寫(xiě)東西,然后服務(wù)端對(duì)應(yīng)的Socket的輸入流就可以讀出對(duì)應(yīng)的內(nèi)容。

例1:客戶端的簡(jiǎn)略寫(xiě)法(一)。

Socket client = null;
try{
client = new Socket(Ip,Port);
String msg="發(fā)送的數(shù)據(jù)內(nèi)容!";
//得到socket讀寫(xiě)流,向服務(wù)端程序發(fā)送數(shù)據(jù) 
client.getOutputStream().write(msg.getBytes());
byte[] datas = new byte[2048];
//從服務(wù)端程序接收數(shù)據(jù)
client.getInputStream().read(datas);
System.out.println(new String(datas));
}catch(Exception e){
e.printStackTrace();
}finally {
if (client != null) {
try {
client.close();
} catch (IOException e) {
System.out.println("systemerr:" +e);
}
}
}

例2:客戶端簡(jiǎn)略寫(xiě)法(二)。

try{
client = new Socket();
SocketAddress socketAddress = new InetSocketAddress(Ip,Port);
client.connect(socketAddress, 3000);
String msg="訪問(wèn)的服務(wù)器返回內(nèi)容!";
//得到socket讀寫(xiě)流,向服務(wù)端程序發(fā)送數(shù)據(jù) 
client.getOutputStream().write(msg.getBytes());
byte[] datas = new byte[2048];
//從服務(wù)端程序接收數(shù)據(jù)
client.getInputStream().read(datas);
System.out.println(new String(datas));
}catch(Exception e){
e.printStackTrace();
}finally {
if (client != null) {
try {
client.close();
} catch (IOException e) {
System.out.println("systemerr:" +e);
}
}
}

例3:客戶端的完整寫(xiě)法。

try { 
//1.建立客戶端socket連接,指定服務(wù)器位置及端口 
Socket socket =new Socket(Ip,Port); 
//2.得到socket讀寫(xiě)流 
OutputStream os=socket.getOutputStream(); 
PrintWriter pw=new PrintWriter(os); 
//輸入流 
InputStream is=socket.getInputStream(); 
BufferedReader br=new BufferedReader(new InputStreamReader(is)); 
//3.利用流按照一定的操作,對(duì)socket進(jìn)行讀寫(xiě)操作 
String sendInfo="向服務(wù)器發(fā)送的數(shù)據(jù)信息!";
pw.write(sendInfo); 
pw.flush(); 
socket.shutdownOutput(); 
//接收服務(wù)器的相應(yīng) 
String replyInfo=null; 
while(!((replyInfo=br.readLine())==null)){ 
System.out.println("接收服務(wù)器的數(shù)據(jù)信息:"+replyInfo); 
} 
//4.關(guān)閉資源 
br.close(); 
is.close(); 
pw.close(); 
os.close(); 
socket.close(); 
} catch (UnknownHostException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
}

關(guān)于Java Socket通信(一)之客戶端程序 發(fā)送和接收數(shù)據(jù)的相關(guān)知識(shí),小編就給大家介紹到這里,更多信息請(qǐng)登陸腳本之家網(wǎng)站了解更多內(nèi)容!

相關(guān)文章

  • SpringCloud中的Hystrix保護(hù)機(jī)制詳解

    SpringCloud中的Hystrix保護(hù)機(jī)制詳解

    這篇文章主要介紹了SpringCloud中的Hystrix保護(hù)機(jī)制詳解,Hystrix,英文意思是豪豬,全身是刺,看起來(lái)就不好惹,是一種保護(hù)機(jī)制,Hystrix也是Netflix公司的一款組件,需要的朋友可以參考下
    2023-12-12
  • Java8深入學(xué)習(xí)系列(一)lambda表達(dá)式介紹

    Java8深入學(xué)習(xí)系列(一)lambda表達(dá)式介紹

    Java8最值得學(xué)習(xí)的特性就是Lambda表達(dá)式和Stream API,所以我們學(xué)習(xí)java8的第一課就是學(xué)習(xí)lambda表達(dá)式,下面這篇文章主要給大家介紹了關(guān)于Java8學(xué)習(xí)之lambda的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-08-08
  • 深入理解Java對(duì)象的序列化與反序列化的應(yīng)用

    深入理解Java對(duì)象的序列化與反序列化的應(yīng)用

    本篇文章是對(duì)Java中對(duì)象的序列化與反序列化進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Java 中的單例類(Singleton)應(yīng)用場(chǎng)景分析

    Java 中的單例類(Singleton)應(yīng)用場(chǎng)景分析

    單例類是一種設(shè)計(jì)模式,確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局訪問(wèn)點(diǎn),本文給大家介紹Java中的單例類(Singleton)應(yīng)用場(chǎng)景分析,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決

    Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決

    本文主要介紹了Mybatis-plus出現(xiàn)數(shù)據(jù)庫(kù)id很大或者為負(fù)數(shù)的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • SpringBoot開(kāi)發(fā)中十大常見(jiàn)陷阱深度解析與避坑指南

    SpringBoot開(kāi)發(fā)中十大常見(jiàn)陷阱深度解析與避坑指南

    在Spring?Boot的開(kāi)發(fā)過(guò)程中,即使是經(jīng)驗(yàn)豐富的開(kāi)發(fā)者也難免會(huì)遇到各種棘手的問(wèn)題,本文將針對(duì)Spring?Boot開(kāi)發(fā)中十大常見(jiàn)的“坑”進(jìn)行深度解析,結(jié)合具體的代碼示例,提供詳細(xì)的解決方案,幫助開(kāi)發(fā)者們有效避坑
    2025-06-06
  • Java類初始化順序詳解

    Java類初始化順序詳解

    這篇文章主要介紹了Java類初始化順序詳解,java語(yǔ)言在使用過(guò)程中最先開(kāi)始就是初始化,在工作中如果遇到什么問(wèn)題需?要定位往往到最后也可能是初始化的問(wèn)題,因此掌握初始化的順序很重要,需要的朋友可以參考下
    2023-08-08
  • 詳解@Autowired(required=false)注入注意的問(wèn)題

    詳解@Autowired(required=false)注入注意的問(wèn)題

    這篇文章主要介紹了@Autowired(required=false)注入注意的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 解析HashMap中的put方法執(zhí)行流程

    解析HashMap中的put方法執(zhí)行流程

    在Java集合中,HashMap的重要性不言而喻,作為一種存儲(chǔ)鍵值對(duì)的數(shù)據(jù)結(jié)構(gòu),它在日常開(kāi)發(fā)中有著非常多的應(yīng)用場(chǎng)景,也是面試中的高頻考點(diǎn),本篇文章就來(lái)分析一下HashMap集合中的put方法
    2021-12-12
  • Java實(shí)現(xiàn)堆排序(大根堆)的示例代碼

    Java實(shí)現(xiàn)堆排序(大根堆)的示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)堆排序(大根堆)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論

怀远县| 巴塘县| 从化市| 临沂市| 肇庆市| 海城市| 福州市| 南昌县| 义马市| 调兵山市| 内丘县| 屏东县| 滦平县| 横山县| 塘沽区| 历史| 南陵县| 长垣县| 南城县| 红桥区| 大理市| 巴中市| 那坡县| 福贡县| 攀枝花市| 丰顺县| 武宁县| 本溪| 江山市| 琼海市| 北川| 朝阳县| 平度市| 洛隆县| 叙永县| 克什克腾旗| 汾阳市| 阿拉善左旗| 五台县| 盐城市| 平阳县|