程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java文件選擇對話框JFileChooser應用詳解

Java文件選擇對話框JFileChooser應用詳解

編輯:關於JAVA

Java文件選擇對話框JFileChooser應用詳解。本站提示廣大學習愛好者:(Java文件選擇對話框JFileChooser應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java文件選擇對話框JFileChooser應用詳解正文


本文實例講述了Go說話辦事器開辟之簡略單純TCP客戶端與辦事端完成辦法。分享給年夜家供年夜家參考。詳細完成辦法以下:

Go說話具有壯大的辦事器開辟支撐,這裡示范了最基本的辦事器開辟:經由過程TCP協定完成客戶端與辦事器的通信。

一 辦事端,為每一個客戶端新開一個goroutine

func ServerBase() { 
    fmt.Println("Starting the server...") 
    //create listener 
    listener, err := net.Listen("tcp", "192.168.1.27:50000") 
    if err != nil { 
        fmt.Println("Error listening:", err.Error()) 
        return 
    } 
 
    // listen and accept connections from clients: 
    for { 
        conn, err := listener.Accept() 
        if err != nil { 
            fmt.Println("Error accepting:", err.Error()) 
            return 
        } 
        //create a goroutine for each request. 
        go doServerStuff(conn) 
    } 

 
func doServerStuff(conn net.Conn) { 
    fmt.Println("new connection:", conn.LocalAddr()) 
    for { 
        buf := make([]byte, 1024) 
        length, err := conn.Read(buf) 
        if err != nil { 
            fmt.Println("Error reading:", err.Error()) 
            return 
        } 
 
        fmt.Println("Receive data from client:", string(buf[:length])) 
    } 
}

二 客戶端 銜接辦事器,並發送數據
func ClientBase() { 
    //open connection: 
    conn, err := net.Dial("tcp", "192.168.1.27:50000") 
    if err != nil { 
        fmt.Println("Error dial:", err.Error()) 
        return 
    } 
 
    inputReader := bufio.NewReader(os.Stdin) 
    fmt.Println("Please input your name:") 
    clientName, _ := inputReader.ReadString('\n') 
    inputClientName := strings.Trim(clientName, "\n") 
 
    //send info to server until Quit 
    for { 
        fmt.Println("What do you send to the server? Type Q to quit.") 
        content, _ := inputReader.ReadString('\n') 
        inputContent := strings.Trim(content, "\n") 
        if inputContent == "Q" { 
            return 
        } 
 
        _, err := conn.Write([]byte(inputClientName + " says " + inputContent)) 
        if err != nil { 
            fmt.Println("Error Write:", err.Error()) 
            return 
        } 
    } 
}

注:因為LiteIDE不支撐同時運轉多個法式,所以須要在終端經由過程 go run 敕令來同時運轉辦事端和(一個或多個)客戶端,可不雅察到辦事器對並發拜訪的支撐。

願望本文所述對年夜家的Go說話法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved