亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java做一個最簡單的Socket通話程序

2019-11-18 12:13:00
字體:
來源:轉載
供稿:網友

  java中的網絡編程是一個很重要的部分,也是其編程優越性的地方之一。在Java中有一個專門的Java.net類庫來治理網絡編程的有關方法。
    下面先介紹在Java中怎樣用socket進行客戶與服務器通信。最后再介紹一個一個最簡單的通話程序。
  
  一.怎樣用socket進行客戶與服務器通信
    在Java中用socket進行客戶/服務器之間的通信編程。Socket是兩個實體之間進行通信的有效端點。通過socket可以獲得源ip地址和源端口、終點IP地址和終點端口。用戶可以將多個socket連入同一個端口,以便對于單個端口可以有多個連接。通過socket客戶/服務器編程可以創建一個能被許多人使用的分布式程序,并且所有客戶均可以用統一的前端進行工作,并與服務器進行通信。
    要想與服務器通信必須具備三個條件:服務器程序、客戶程序和連接它們的socket程序。這三個部分缺一不可。但是,客戶與服務器之間的通信有很多的方式,其中另一個方法是把客戶作為索取者,把服務器作為給予者。下面我們看一看Java的服務器編程。
    在Java中,服務器有3個主要的功能:
    1.在Java.net類庫中通過構造一個ServerSocket類的實例使服務器能夠檢測到指定端口的信息。用ServerSocke中的accept()方法可以使服務器檢測到指定端口的活動。另外,服務器還負責檢測要求與它連接的客戶。
  ·Socket類的實例代表客戶與服務器連接成功。通過編程可以使多個用戶通過同一個端口與服務器相連,其中都是Socket 類的實例。
    2.可以分別用Socket類的getInputStream()和getOutStream()方法來發送和捕捉數據。其使用方法如下:
  
    try{
      ServerSocket myServerSocket=new ServerSocket(100);
      Socket my100Socket=myServerSocket.accept();
    }catch(Exception e){}
  
    在上面的代碼中,首先構造一個ServerSocket類的實例,并傳遞給它一個整數作為服務器指定可以使用的給定端口,如下:
  
    ServerSocket myServerSocket=new ServerSocket(100);
  
    在Java程序中假如每次構造ServerSocket時都能保持捕捉異常事件,則就隨時指定了預備使用的端口。下面的代碼使用accept()方法來檢測端口的活動。
  
    Socket my100Socket=myServerSocket.accept();
  
    Accept()方法直到接收到用戶的連接請求,才繼續執行中斷的執行程序。一旦客戶的連接成功,my100Socket就代表該連接,并且可以發送和接收數據。
  最后,我們看一看客戶是怎樣請求連接的。其連接方法如下:
  
    try{
      Socket mySocket=new Socket("www.cpcw.com",100);
    }catch(Exception e ){}
  
    通過上面的代碼可能看出,也是通過Socket類來實現的。下面我們通過一個網絡編程的實例來說明如何進行網絡通信。
  
  二.一個最簡單的通話程序
  
  通話器服務器:
  import java.net.*;
  import java.io.*;
  import java.lang.*;
  
  public class myserver{
  public static void main(String args[]){
  ServerSocket server;
  Socket socket;
  String s;
  InputStream Is;
  OutputStream Os;
  DataInputStream DIS;
  PRintStream PS;
  
  try{
  //在端口4321注冊服務
  server=new ServerSocket(4321);
  socket=server.accept();   //監聽窗口,等待連接
  
  System.out.println("server ok");
  System.out.println("************************************************");
  System.out.println("");
  
  //獲得對應Socket的輸入/輸出流
  Is=socket.getInputStream();
  Os=socket.getOutputStream();
  //建立數據流
  DIS=new DataInputStream(Is);
  PS=new PrintStream(Os);
  DataInputStream in=new DataInputStream(System.in);
  while(true){
  System.out.println("");
  System.out.println("please wait client's message...");
  System.out.println("");
  s=DIS.readLine(); //讀入從client傳來的字符串
  System.out.println("client said:"+s); //打印字符串
  if(s.trim().equals("BYE"))break; //假如是"BYE",就退出
  System.out.print("you say:");
  s=in.readLine(); //讀取用戶輸入的字符串
  PS.println(s); //將讀取得字符串傳給client
  if(s.trim().equals("BYE"))break; //假如是"BYE",就退出
  
  }
  
  //關閉連接
  DIS.close(); //關閉數據輸入流
  PS.close(); //關閉數據輸出流
  Is.close(); //關閉輸入流
  Os.close(); //關閉輸出流
  socket.close(); //關閉sockey
  }
  catch(Exception e){
  System.out.println("Error:"+e);
  }
  }
  }
  
  
  通話器客戶端
  import java.net.*;
  import java.io.*;
  import java.lang.*;
  
  public class myclient{
  public static void main(String args[]){
  if (args.length<1){ //判定命令加參數沒有
  System.out.println("you forget the name of the server!");
  System.out.println("see also: myclient yxf");
  System.exit(1); //假如沒加參數就退出
  }
  
  Socket socket;
  String s="yxfsoft@263.net";
  String len;
  InputStream Is;
  OutputStream Os;
  DataInputStream DIS;
  PrintStream PS;
  try{
  //向主機名為args[0]的服務器申請連接
  //注重端口號要與服務器保持一致:4321
  socket=new Socket(args[0],4321);
  
  System.out.println("client ok");
  System.out.println("************************************************");
  System.out.println("");
  
  //獲得對應socket的輸入/輸出流
  Is=socket.getInputStream();
  Os=socket.getOutputStream();
  //建立數據流
  DIS=new DataInputStream(Is);
  PS=new PrintStream(Os);
  DataInputStream in=new DataInputStream(System.in);
  
  while(true){
  System.out.print("you say:");
  s=in.readLine(); //讀取用戶輸入的字符串
  PS.println(s); //將讀取得字符串傳給server
  if(s.trim().equals("BYE"))break; //假如是"BYE",就退出
  else
  {
  System.out.println("");
  System.out.println("please wait server's message...");
  System.out.println("");
  }
  s=DIS.readLine(); //從服務器獲得字符串
  System.out.println("server said:"+s); //打印字符串
  if(s.trim().equals("BYE"))break; //假如是"BYE",就退出
  
  }
  
  //關閉連接
  DIS.close(); //關閉數據輸入流
  PS.close(); //關閉數據輸出流
  Is.close(); //關閉輸入流
  Os.close(); //關閉輸出流
  socket.close(); //關閉socket
  }
  catch(Exception e){
  System.out.println("Error:"+e);
  }
  }
  }

上一篇:讀取網絡文件

下一篇:JAVA 的Socket機制

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂av在线播放| 国产午夜精品麻豆| 欧美成人网在线| 国产97在线|亚洲| 久久九九热免费视频| 亚洲国产天堂久久综合网| 亚洲第一色中文字幕| 亚洲一区二区日本| 国产精品美女主播| 亚洲欧美激情四射在线日| 欧美伊久线香蕉线新在线| 亚洲成人性视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲综合自拍一区| 欧美在线视频一区二区| 国产精品亚洲视频在线观看| 亚洲欧洲在线免费| 成人情趣片在线观看免费| 亚洲国产一区自拍| 亚洲国产天堂久久国产91| 欧美性xxxxxx| 日本国产精品视频| 亚洲一二在线观看| 久久国产天堂福利天堂| 国产精品日韩在线观看| 欧美日本中文字幕| 一本一本久久a久久精品综合小说| 日韩欧美在线观看视频| 亚洲综合色激情五月| 欧美日韩亚洲天堂| 色综合伊人色综合网站| 97国产真实伦对白精彩视频8| 色综合久综合久久综合久鬼88| 亚洲自拍偷拍在线| 亚洲综合色av| www.xxxx欧美| 亚洲xxxxx性| 亚洲一区二区福利| 懂色av影视一区二区三区| 久久精品国产视频| 久久夜色精品国产欧美乱| 97在线视频国产| 国产精品久久久久久久午夜| 97久久久久久| 神马久久久久久| 影音先锋欧美精品| 欧洲成人免费视频| 日韩黄色av网站| 欧美激情三级免费| 北条麻妃久久精品| 午夜精品免费视频| 亚洲xxxx妇黄裸体| 亚洲国产成人久久综合| 亚洲天堂免费视频| 日韩在线中文字| 色偷偷88888欧美精品久久久| 国语自产精品视频在线看抢先版图片| 亚州av一区二区| 92看片淫黄大片看国产片| 色99之美女主播在线视频| 欧美色播在线播放| 久久久精品一区| 91亚洲国产精品| 91精品国产色综合久久不卡98口| 国产在线拍揄自揄视频不卡99| 欧美日韩国产在线播放| 亚洲欧美激情视频| 亚洲最大成人网色| 欧美精品制服第一页| 91亚洲人电影| 久久影院免费观看| 亚洲男人的天堂网站| 亚洲一级黄色片| 在线观看国产成人av片| 欧美亚洲国产视频| 97在线精品视频| 欧美自拍视频在线观看| 国内精品美女av在线播放| 欧美中文字幕第一页| 国产午夜一区二区| 欧美一级片久久久久久久| 日韩中文在线观看| 亚洲成人av在线播放| 日韩电影中文字幕在线观看| 国产精品亚发布| 国产亚洲欧美aaaa| 91九色蝌蚪国产| 亚洲电影成人av99爱色| 亚洲国产成人精品一区二区| 日韩久久精品电影| 国产精品网站视频| 亚洲成成品网站| 久久亚洲私人国产精品va| 久久九九热免费视频| 国语自产精品视频在免费| 成人h视频在线观看播放| 9.1国产丝袜在线观看| 亚洲一区国产精品| 国产精品电影久久久久电影网| 粉嫩av一区二区三区免费野| 日韩中文字幕视频在线观看| 隔壁老王国产在线精品| 91嫩草在线视频| 两个人的视频www国产精品| 国产一区av在线| 久久久这里只有精品视频| 久久久久久成人精品| 成人a免费视频| 夜夜嗨av色一区二区不卡| 成人在线一区二区| 91在线免费视频| 欧美在线一级视频| 亚洲黄色av女优在线观看| 国产精品视频区1| 国产精品久久久久久久久久久久| 亚洲第一精品久久忘忧草社区| 日韩在线欧美在线国产在线| 日韩成人在线免费观看| 日韩国产在线播放| 成人免费淫片视频软件| 91黑丝高跟在线| 欧美最近摘花xxxx摘花| 亚洲国产精品悠悠久久琪琪| 日本高清不卡的在线| 久久综合五月天| 九九热视频这里只有精品| 精品亚洲一区二区三区四区五区| 91性高湖久久久久久久久_久久99| 亚洲国产成人精品一区二区| 国产成人精品免高潮费视频| 国产成人jvid在线播放| 日本国产精品视频| 国产精品老女人视频| 国产亚洲精品成人av久久ww| 日韩av中文字幕在线| 在线观看国产欧美| 国产精品久久久久久久久久久不卡| 久久亚洲春色中文字幕| 少妇高潮久久久久久潘金莲| 国产不卡视频在线| 亚洲欧美在线播放| 2018中文字幕一区二区三区| 精品国产31久久久久久| 精品久久久久久亚洲国产300| 欧美日韩国产成人在线观看| 一本一本久久a久久精品牛牛影视| 精品成人国产在线观看男人呻吟| 久久99久久99精品免观看粉嫩| 成人av在线天堂| 久久精品青青大伊人av| xxxx欧美18另类的高清| 精品成人av一区| 亚洲综合最新在线| 久久精品电影一区二区| 国产亚洲精品成人av久久ww| 国产精品爽爽爽爽爽爽在线观看| 日韩网站免费观看高清| 亚洲一级免费视频| 欧美成人一区在线| 国产999在线观看| 久久久精品999| 奇米成人av国产一区二区三区| 亚洲欧美国产精品久久久久久久| 美日韩精品免费视频|