欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì)

 更新時(shí)間:2021年04月19日 09:12:03   作者:Killer-V  
這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程之TCP程序設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java網(wǎng)絡(luò)編程TCP程序設(shè)計(jì)的具體代碼,供大家參考,具體內(nèi)容如下

[1] TCP編程的主要步驟

客戶端(client):

1.創(chuàng)建Socket對(duì)象,構(gòu)造方法的形參列表中需要InetAddress類對(duì)象和int型值,用來(lái)指明對(duì)方的IP地址和端口號(hào)。

2.通過(guò)Socket對(duì)象的getOutputStream()方法返回OutputStream抽象類子類的一個(gè)對(duì)象,用來(lái)發(fā)送輸出流。

3.通過(guò)輸出流的write方法輸出具體的信息。

4.關(guān)閉相應(yīng)的流和Socket對(duì)象。

服務(wù)端(server):

1.創(chuàng)建ServerSocket類的對(duì)象,在構(gòu)造器中指明端口號(hào)。

2.調(diào)用ServerSocket類對(duì)象的accept()方法,返回一個(gè)Socket類的實(shí)例。

3.通過(guò)Socket實(shí)例的getInputStream()方法獲取一個(gè)輸入流,用來(lái)接收來(lái)自客戶端的信息。

4.利用輸入流接收數(shù)據(jù),并處理數(shù)據(jù)。

5.關(guān)閉相應(yīng)的流、Socket對(duì)象、ServerSocket對(duì)象。

[2] Java源程序 ( 注意:在測(cè)試時(shí)先開(kāi)啟服務(wù)端方法server(),再開(kāi)啟客戶端方法client() )

package pack01;

import java.io.*;
import java.net.*;
import org.junit.Test;

public class TestNet1 {
 
 @Test //***********************客戶端測(cè)試方法***********************
 public void client() {
  
  Socket socket = null; //建立客戶端網(wǎng)絡(luò)套接字
  OutputStream socket_os = null; //客戶端輸出流
  
  try {
   //1.獲取本機(jī)環(huán)路地址
   InetAddress inet = InetAddress.getByName("127.0.0.1");
   
   //2.創(chuàng)建Socket對(duì)象
   socket = new Socket(inet, 10000);
   
   //3.獲取輸出流
   socket_os = socket.getOutputStream();
   
   //4.客戶端輸出信息
   socket_os.write( "客戶端發(fā)送信息".getBytes() );
   
  } catch (IOException e) {
   e.printStackTrace();
   
  } finally {
   
   try { //關(guān)閉輸出流
    socket_os.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
   
   try { //關(guān)閉客戶端套接字
    socket.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
 
 @Test //***********************服務(wù)端測(cè)試方法***********************
 public void server() {
  
  ServerSocket serSocket = null;
  Socket socket = null;
  InputStream socket_is = null;
  
  try {
   serSocket = new ServerSocket(10000);
   socket = serSocket.accept(); //獲取服務(wù)端套接字
   socket_is = socket.getInputStream(); //獲取輸入流
   
   byte[] b = new byte[100]; //用于接收信息的字節(jié)數(shù)組
   int len;
   StringBuffer sb = new StringBuffer();
   
   while( (len = socket_is.read(b)) != -1 ) {
    sb.append( new String(b,0,len) ); //將字節(jié)信息連續(xù)保存在buffer數(shù)組里
   }
   System.out.println("來(lái)自" + socket.getInetAddress().getHostName() + "的信息:");
   System.out.println( sb );
   
  } catch (IOException e) {
   e.printStackTrace();
   
  } finally {
   
   try { //關(guān)閉輸入流
    socket_is.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
   
   try { //關(guān)閉Socket對(duì)象
    socket.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
   
   try { //關(guān)閉ServerSocket對(duì)象
    serSocket.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 漢諾塔Hanoi遞歸、非遞歸(仿系統(tǒng)遞歸)和非遞歸規(guī)律 實(shí)現(xiàn)代碼

    java 漢諾塔Hanoi遞歸、非遞歸(仿系統(tǒng)遞歸)和非遞歸規(guī)律 實(shí)現(xiàn)代碼

    漢諾塔(Hanoi) 算法Java實(shí)現(xiàn)。通過(guò)三個(gè)函數(shù),分別對(duì)Hanoi進(jìn)行遞歸、非遞歸和非遞歸規(guī)律實(shí)現(xiàn)。
    2013-05-05
  • Java不能真正泛型的原因是什么?

    Java不能真正泛型的原因是什么?

    今天我來(lái)給大家講一下,Java 不能實(shí)現(xiàn)真正泛型的原因是什么?感興趣的朋友可以看一下,如果能給你到來(lái)一些幫助,請(qǐng)關(guān)注小編的其他內(nèi)容
    2021-08-08
  • java高并發(fā)ScheduledThreadPoolExecutor與Timer區(qū)別

    java高并發(fā)ScheduledThreadPoolExecutor與Timer區(qū)別

    這篇文章主要為大家介紹了java高并發(fā)ScheduledThreadPoolExecutor與Timer區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Spring IOC 能降低耦合的問(wèn)題分析及解決方法

    Spring IOC 能降低耦合的問(wèn)題分析及解決方法

    這篇文章主要介紹了Spring IOC 為什么能降低耦合,依賴注入是調(diào)用者僅通過(guò)聲明某個(gè)組件就可以獲得組件的控制權(quán),而對(duì)該組件的依賴關(guān)系管理、查找、加載由外部完成,需要的朋友可以參考下
    2022-06-06
  • Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選

    Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選

    這篇文章主要介紹了Spring Bean實(shí)例的創(chuàng)建及構(gòu)造器的挑選,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java深入淺出數(shù)組的定義與使用上篇

    Java深入淺出數(shù)組的定義與使用上篇

    數(shù)組是有序的元素序列,若將有限個(gè)類型相同的變量的集合命名,那么這個(gè)名稱為數(shù)組名。組成數(shù)組的各個(gè)變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時(shí)也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來(lái)的一種形式
    2022-03-03
  • SpringMVC對(duì)日期類型的轉(zhuǎn)換示例

    SpringMVC對(duì)日期類型的轉(zhuǎn)換示例

    本篇文章主要介紹了SpringMVC對(duì)日期類型的轉(zhuǎn)換示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • springboot中filter的用法詳解

    springboot中filter的用法詳解

    本篇文章主要介紹了springboot中filter的用法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • JavaCV簡(jiǎn)介與環(huán)境搭建詳細(xì)步驟

    JavaCV簡(jiǎn)介與環(huán)境搭建詳細(xì)步驟

    JavaCV是一個(gè)開(kāi)源的Java接口,它為幾個(gè)著名的計(jì)算機(jī)視覺(jué)庫(kù)(如OpenCV、FFmpeg)提供了Java封裝,這篇文章主要給大家介紹了關(guān)于JavaCV簡(jiǎn)介與環(huán)境搭建的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Java?抽象類和接口的實(shí)現(xiàn)

    Java?抽象類和接口的實(shí)現(xiàn)

    本文主要介紹了Java?抽象類和接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2007-03-03

最新評(píng)論