Server Socket通信的實例分析

Server Socket 通信一直在不斷的進行相關的測試,在不斷的使用中有很多的問題存在,其實有不少的問題在源代碼中就能找打答案。所謂Server Socket通信通常也稱作"套接字",用於描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。

Server Socket通信的實例分析

Socket和ServerSocket類庫位於包中。Server Socket用於服務器端,Server Socket通信是建立網絡連接時使用的。在 連接成功時,應用程序兩端都會產生一個Socket實例,操作這個實例,完成所需的會話。對於一個網絡連接來說,套接字是平等的,並沒有差別,不因爲在服 務器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。

下面給出一個最簡單的Server Socket通信的例子供初學者參考:

服務器端:

Java代碼

age et;

rt InputStream;

rt OutputStream;

rt ception;

rt erSocket;

rt et;

ic class ServerDemo {

8./**

9.* 注意:Socket的.發送與接收是需要同步進行的,即客戶端發送一條信息,服務器必需先接收這條信息,

10.* 而後纔可以向客戶端發送信息,否則將會有運行時出錯。

11.* @param args

12.*/

ic static void main(String[] args) {

erSocket ss = null;

{

= new ServerSocket(8888);

17.//服務器接收到客戶端的數據後,創建與此客戶端對話的Socket

et socket = pt();

19.//用於向客戶端發送數據的輸出流

OutputStream dos = new DataOutputStream(utputStream());

21.//用於接收客戶端發來的數據的輸入流

InputStream dis = new DataInputStream(nputStream());

tln("服務器接收到客戶端的連接請求:" + UTF());

24.//服務器向客戶端發送連接成功確認信息

eUTF("接受連接請求,連接成功!");

26.//不需要繼續使用此連接時,關閉連接

e();

e();

29.} catch (IOException e) {

tStackTrace();

31.}

32.}

33.}

Server Socket通信客戶端:

Java代碼

age et;

rt InputStream;

rt OutputStream;

rt ception;

rt utStream;

rt et;

rt ownHostException;

ic class ClientDemo {

42./**

43.* @param args

44.*/

ic static void main(String[] args) {

et socket = null;

{

et = new Socket("localhost",8888);

49.//獲取輸出流,用於客戶端向服務器端發送數據

OutputStream dos = new DataOutputStream(utputStream());

51.//獲取輸入流,用於接收服務器端發送來的數據

InputStream dis = new DataInputStream(nputStream());

53.//客戶端向服務器端發送數據

eUTF("我是客戶端,請求連接!");

55.//打印出從服務器端接收到的數據

tln(UTF());

57.//不需要繼續使用此連接時,記得關閉哦

e();

59.} catch (UnknownHostException e) {

tStackTrace();

61.} catch (IOException e) {

tStackTrace();