不同語言互傳json數(shù)據(jù)

以下是gopython的示例代碼

  1. server.py:
import socket
import json

# 服務(wù)器配置
HOST = '127.0.0.1'  # 服務(wù)器的IP地址
PORT = 12345         # 選擇一個空閑端口

# 創(chuàng)建一個TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()

print(f"服務(wù)器正在監(jiān)聽 {HOST}:{PORT}...")


def receive_large_data(client_socket):
    data = b''
    while True:
        chunk = client_socket.recv(1024)
        if not chunk:
            break
        data += chunk
    return data


# 等待客戶端連接
client_socket, client_address = server_socket.accept()
print(f"已連接到客戶端 {client_address}")

# 接收JSON數(shù)據(jù)
data = receive_large_data(client_socket)
json_data = json.loads(data.decode('utf-8'))
print("接收到的JSON數(shù)據(jù):", json_data)

# 關(guān)閉連接
client_socket.close()
server_socket.close()
  1. client.go:
package main

import (
    "encoding/json"
    "fmt"
    "net"
    "strings"
)

func main() {
    // 服務(wù)器配置
    serverAddr := "127.0.0.1:12345"

    // 連接服務(wù)器
    conn, err := net.Dial("tcp", serverAddr)
    if err != nil {
        fmt.Println("無法連接到服務(wù)器:", err)
        return
    }
    defer conn.Close()

    fmt.Printf("已連接到服務(wù)器 %s\n", serverAddr)

    // 準備要發(fā)送的JSON數(shù)據(jù)
    dataToSend := map[string]interface{}{
        "name": "Alice",
        "age":  25,
        "city": strings.Repeat("Wonderland ", 1000),
    }
    jsonData, err := json.Marshal(dataToSend)
    if err != nil {
        fmt.Println("JSON編碼失敗:", err)
        return
    }

    // 發(fā)送JSON數(shù)據(jù)
    _, err = conn.Write(jsonData)
    if err != nil {
        fmt.Println("發(fā)送JSON數(shù)據(jù)失敗:", err)
        return
    }
    fmt.Printf("序列化后的 JSON 數(shù)據(jù)的字節(jié)大小: %d\n", len(jsonData))
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址:https://www.ardanlabs.com/blog/2020/06/python-go-grp...
    豆腐匠閱讀 727評論 0 0
  • 簡介 Apache Thrift是一個軟件框架,用來進行可擴展跨語言的服務(wù)開發(fā),結(jié)合了軟件堆棧和代碼生成引擎,用來...
    birjemin閱讀 1,058評論 0 1
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,803評論 1 118
  • 一、互聯(lián)網(wǎng)協(xié)議介紹 互聯(lián)網(wǎng)的核心是一系列協(xié)議,總稱為”互聯(lián)網(wǎng)協(xié)議”(Internet Protocol Suite...
    Benedict清水閱讀 147評論 0 0
  • 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先...
    hugoren閱讀 19,975評論 0 23

友情鏈接更多精彩內(nèi)容