Java Socket程式設計系列(一)開發一次性會話的Server和Client
關於什麼是Socket:
A socket is one end-point of a two-way communication link between two programs running on the network.
Socket是網路上執行的2個程式之間通訊連結的終點。說白了就是代表一條通訊鏈路的兩端。
Socket classes are used to represent the connection between a client program and a server program.
Socket類用來代表客戶端程式和伺服器端程式的連線。
The java.net package provides two classes--Socket and ServerSocket--that implement the client side of the connection and the server side of the connection, respectively
Java中的java.net包提供了Socket和ServerSocket類分別實現連線的客戶端和服務端。Java中如何編寫?
伺服器端:
package com.dylan.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 伺服器
*
* @author xusucheng
* @create 2017-12-21
**/
public class Server {
public static final int PORT = 8858;//監聽的埠號
public static void main(String[] args) throws Exception {
System.out.println("Server started! Listening...");
ServerSocket serverSocket = new ServerSocket(PORT);
Socket server = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
String readLine = in.readLine();
if (readLine != null) {
System.out.println("Receive message from Client: " + readLine);
out.println("Roger!");
}
out.close();
in.close();
server.close();
serverSocket.close();
}
}
客戶端:
package com.dylan.socket;
import java.io.*;
import java.net.Socket;
/**
* 客戶端
*
* @author xusucheng
* @create 2017-12-20
**/
public class Client {
public static final String HOST = "127.0.0.1";//伺服器地址
public static final int PORT = 8858;//伺服器埠號
public static void main(String[] args) throws Exception{
Socket client = new Socket(HOST,PORT);
//建立輸入流
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
//建立輸出流
PrintWriter out = new PrintWriter(client.getOutputStream(),true);
//向伺服器程式傳送資訊
out.println("Hello Server! This is Client! ");
//接收來自伺服器程式的響應
String readLine=in.readLine();
if(readLine!=null){
System.out.println("Receive message from Server: "+readLine);
}
//關閉連結
out.close();
in.close();
client.close();
}
}
啟動
伺服器端
Server started! Listening...
Receive message from Client: Hello Server! This is Client!
客戶端:
Receive message from Server: Roger!
相關文章
- Java Socket程式設計系列(二)開發帶回聲功能的Server和ClientJava程式設計Serverclient
- Java Socket程式設計系列(四)開發支援多客戶端訪問的ServerJava程式設計客戶端Server
- Java Socket程式設計系列(三)開發支援單客戶端訪問的ServerJava程式設計客戶端Server
- 《初識TCP》iOS、macOS實現socket client與socket serverTCPiOSMacclientServer
- python3:利用socket建立的一個簡單的聊天client端和server端例項PythonclientServer
- SSH secure shell client 開啟會話日誌功能client會話
- socket.io client + socketio-netty server簡析clientNettyServer
- 完善的Socket Server程式 (轉)Server
- java併發程式設計系列:牛逼的AQS(下)Java程式設計AQS
- java併發程式設計系列:牛逼的AQS(上)Java程式設計AQS
- java併發程式設計系列:java併發程式設計背景知識Java程式設計
- Java併發程式設計系列之Semaphore詳解Java程式設計
- Java 在Client/Server 中應用JavaclientServer
- java併發程式設計系列:wait/notify機制Java程式設計AI
- 玩轉iOS開發:iOS中的Socket程式設計(一)iOS程式設計
- 三步學會Java Socket程式設計Java程式設計
- 閒話Java基礎和開發平臺Java
- Linux CVS Server + jCVS-5.3.2 Client分散式開發(一) (轉)LinuxServerclient分散式
- Aveva Marine VBNET 程式設計系列-搭建開發框架程式設計框架
- 單一會話引發的死鎖會話
- Java在Client/Server網路中的應用 (轉)JavaclientServer
- mysql原碼安裝(server和client)MySqlServerclient
- 《Client-Server Web Apps with JavaScript and Java》選讀:什麼是Client-Server Web App?clientServerWebAPPJavaScript
- 使用 Socket.io 和 React 開發一個聊天應用React
- Java必知必會之socketJava
- Socket Server的N種併發模型彙總Server模型
- Socket Server 的 N 種併發模型彙總Server模型
- ☕【Java深層系列】「併發程式設計系列」讓我們一起探索一下CyclicBarrier的技術原理和原始碼分析Java程式設計原始碼
- ☕【Java深層系列】「併發程式設計系列」讓我們一起探索一下CountDownLatch的技術原理和原始碼分析Java程式設計CountDownLatch原始碼
- Java Socket程式設計Java程式設計
- Java Socket程式設計Java程式設計
- Java併發程式設計系列文章目錄帖及原始碼Java程式設計原始碼
- SQL Server Service Broker建立單個資料庫會話(訊息佇列)SQLServer資料庫會話佇列
- Java Web(四) 一次性驗證碼的程式碼實現JavaWeb
- ☕【Java深層系列】「併發程式設計系列」讓我們一起探索一下CompletionService的技術原理和使用指南Java程式設計
- 會開發和懂開發的區別
- java併發程式設計系列原理篇--JDK中的通訊工具類SemaphoreJava程式設計JDK
- java的socket程式設計問題Java程式設計