熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Server Socket通信簡單的實例分析

2013-11-23 18:49:28  來源: Java核心技術 

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

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

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

  服務器端ServerDemojava

  Java代碼

  package comlanbersocket;

  import javaioDataInputStream;

  import javaioDataOutputStream;

  import javaioIOException;

  import ServerSocket;

  import Socket;

  public class ServerDemo {

  /**

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

  * 而後才可以向客戶端發送信息否則將會有運行時出錯

  * @param args

  */

  public static void main(String[] args) {

  ServerSocket ss = null;

  try {

  ss = new ServerSocket();

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

  Socket socket = ssaccept();

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

  DataOutputStream dos = new DataOutputStream(socketgetOutputStream());

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

  DataInputStream dis = new DataInputStream(socketgetInputStream());

  Systemoutprintln(服務器接收到客戶端的連接請求 + disreadUTF());

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

  doswriteUTF(接受連接請求連接成功!);

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

  socketclose();

  ssclose();

  } catch (IOException e) {

  eprintStackTrace();

  }

  }

  }

  Server Socket通信客戶端ClientDemojava

  Java代碼

  package comlanbersocket;

  import javaioDataInputStream;

  import javaioDataOutputStream;

  import javaioIOException;

  import javaioOutputStream;

  import Socket;

  import UnknownHostException;

  public class ClientDemo {

  /**

  * @param args

  */

  public static void main(String[] args) {

  Socket socket = null;

  try {

  socket = new Socket(localhost);

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

  DataOutputStream dos = new DataOutputStream(socketgetOutputStream());

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

  DataInputStream dis = new DataInputStream(socketgetInputStream());

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

  doswriteUTF(我是客戶端請求連接!);

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

  Systemoutprintln(disreadUTF());

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

  socketclose();

  } catch (UnknownHostException e) {

  eprintStackTrace();

  } catch (IOException e) {

  eprintStackTrace();

  }

  }

  }

  以上就是對Server Socket通信的詳細代碼介紹希望大家找到了自己需要的


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25808.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.