1. 程式人生 > 資訊 >英特爾釋出 Optane SSD P1600X 固態硬碟:專為啟動、快取和日誌記錄而設計

英特爾釋出 Optane SSD P1600X 固態硬碟:專為啟動、快取和日誌記錄而設計

Python socket

所謂套接字(Socket),就是對網路中不同主機上的應用程序之間進行雙向通訊的端點的抽象。Socket程式設計是比較底層的應用程式呼叫,如果實現一個簡單的分散式,則可以通過socket進行通訊,本篇只是簡單的應用Python模擬Server和client進行通訊,所以是同一個IP對應不同的埠。

套接字Socket=(IP地址:埠號),套接字的表示方法是點分十進位制的lP地址後面寫上埠號,中間用冒號或逗號隔開。每一個傳輸層連線唯一地被通訊兩端的兩個端點(即兩個套接字)所確定。例如:如果IP地址是210.37.145.1,而埠號是23,那麼得到套接字就是(210.37.145.1:23)

程式碼實現

Server程式碼

# This is server side
import socket

# Create Server socket client
server_client = socket.socket()

host = 'localhost'
port = 12345

# Which IP and port to bind for server.
server_client.bind((host, port))
# Server will always listen on this port
server_client.listen()


# keep with listening
try:
    while True:
        # If we get request, will also get source address ip
        c, addr = server_client.accept()
        print("Get connection from {}".format(addr))

        data = c.recv(1024)
        print(data.decode())

        # send back to client means that server get the message
        c.send("Hi client, this is server!".encode())
except:
    print("Stop server!")

Client程式碼

# To make the socket client to connect with server

import socket

host = 'localhost'
port = 12345

# Bind IP and client port
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# start to connect
client_socket.connect((host, port))

data = "hi server!"

# send data to server
client_socket.send(data.encode())

# get result from server
res = client_socket.recv(1024)

print(res.decode())

啟動結果

因為serer是一個長程序,所以我們可以不斷的通過不同的client對server進行呼叫,所以我們可以看到不同的client port。如果使用不同server,則可以看到不同的IP。

本文來自部落格園,作者:{guangqiang.lu},轉載請註明原文連結:{https://www.cnblogs.com/guangqianglu/}