當(dāng)前位置:博客首頁>>java >> 閱讀正文

java socket編程基礎(chǔ)實例 – 單客戶端

作者: 鄭曉 分類: java 發(fā)布于: 2013-09-18 07:53 瀏覽:6,997 評論(8)


前兩天學(xué)到類集框架,有點兒繞里面去了,所以暫時放一邊,先來學(xué)習(xí)下socket編程,嘗嘗鮮。。。。
這是最基礎(chǔ)的一對一的socket,服務(wù)端只能與一個客戶端“發(fā)生關(guān)系”。。。編譯運行服務(wù)端后,程序阻塞等待客戶端連接??蛻舳司幾g運行后與本機(jī)服務(wù)端進(jìn)行連接,然后等待用戶輸入信息。信息發(fā)送到服務(wù)端,在服務(wù)端打印輸出,同時服務(wù)端又返回給客戶端一則信息??蛻舳溯斎雃nd時兩端程序退出。
這是服務(wù)端程序。

import java.io.*;
import java.net.*;

public class server {
public static void main(String [] args) throws Exception { //聲明拋出異常
//創(chuàng)建服務(wù)端的socket實例
ServerSocket server = new ServerSocket(2345);
//阻塞 監(jiān)聽端口的連接,如果有連接則創(chuàng)建socket實例
Socket client = server.accept();
//聲明接收(輸入流)實例 接收來自客戶端的數(shù)據(jù)
BufferedReader read = new BufferedReader( new InputStreamReader( client.getInputStream()));
//聲明發(fā)送(輸出流)實例 將數(shù)據(jù)發(fā)送至連接的客戶端
PrintWriter write = new PrintWriter( client.getOutputStream());

//無限的執(zhí)行請求
while( true ) {
//監(jiān)聽從客戶端接收到的信息 如果有則讀入一行
String str = read.readLine();
System.out.println("從客戶端接收到:" + str);
//向socket客戶端發(fā)送信息
write.println("這是來自服務(wù)端的信息:" + str);
write.flush(); //刷新輸出緩沖
//如果接收的是end 退出。
if(str.equals("end")) break;
}
write.close(); //關(guān)閉發(fā)送
read.close(); //關(guān)閉接收
}
}

這是客戶端程序。

import java.io.*;
import java.net.*;
public class client {
public static void main(String [] arsg) throws Exception {
//創(chuàng)建客戶端實例
Socket client = new Socket( InetAddress.getLocalHost(), 2345);
//聲明接收(輸入流)
BufferedReader read = new BufferedReader( new InputStreamReader( client.getInputStream()));
//聲明發(fā)送(輸出流)
PrintWriter write = new PrintWriter( client.getOutputStream());
//聲明鍵盤輸入流
BufferedReader kbread = new BufferedReader( new InputStreamReader( System.in ));

while( true ) {
//從鍵盤獲取一行輸入
String str = kbread.readLine();
//發(fā)送
write.println(str);
write.flush();
if(str.equals("end")) break;
System.out.println(read.readLine()); //獲取一次返回
}
System.out.println("退出連接!");
read.close();
write.close();

}
}

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://www.yjfs.org.cn/java-socket-programming-foundation-instance-single-client.html

java socket編程基礎(chǔ)實例 – 單客戶端:目前有8 條留言

用戶評論頭像 超拽QQ分組發(fā)表于 2013年11月23日 19:55[回復(fù)]

真實高手,支持,我也要加油學(xué)習(xí)了

用戶評論頭像 戶外服裝品牌哪個好發(fā)表于 2013年10月21日 16:01[回復(fù)]

又遇見一個玩Java的人

用戶評論頭像 泰安櫻桃苗發(fā)表于 2013年10月20日 08:29[回復(fù)]

java強(qiáng)大。可是不是東,博主的博客是用java做的?

    用戶評論頭像 鄭曉發(fā)表于 2013年10月21日 16:54[回復(fù)]

    用的是wordpress程序,基于php語言。

用戶評論頭像 靈異事件發(fā)表于 2013年10月17日 15:01[回復(fù)]

好博客!贊一個!

用戶評論頭像 景德鎮(zhèn)論壇發(fā)表于 2013年10月14日 19:03[回復(fù)]

SOCKET編程,讓我想起了馬士兵老師

用戶評論頭像 漢成華都業(yè)主發(fā)表于 2013年10月09日 14:12[回復(fù)]

又遇見一個玩Java的孩子 ??

發(fā)表評論

change vcode