python和unity通信_socket——python和unity之间传输Json数据

本文介绍如何使用Python和Unity通过socket进行通信,特别是传输Json数据。重点讨论了Python的socket编程,包括json.dumps转换和编码,以及Unity端使用jsonUtility解析接收到的数据。文中提到了在Python和C#之间进行socket通信时可能出现的乱码问题及解决方案,以及Unity中jsonUtility的使用限制和处理技巧。
摘要由CSDN通过智能技术生成

做实验室的项目,使用socket在python和unity之间传输json数据,遇到了不少坑。

python程序之间以及C#程序之间的socket通信

先讲讲两个python之间的socket通信,不得不赞叹python写代码简直舒服,估计以后写代码会经常拿python先试试水比较思路,有大致模型后再考虑转其他语言编码

比较需要注意的是,在不同语言的程序之间进行socket通信,编码需要同时设置为UTF-8或者其他,否者将会出现乱码

python程序和C#程序的socket传输json

先码上

import socket

import threading

import json

sendData = {

"infolist":

[

{

"name": "fefa",

"age": "34"

},

{

"name": "hrg",

"age": "21

}

]

}

# 当新的客户端连入时会调用这个方法

def on_new_connection(client_executor, addr):

print('Accept new connection from %s:%s...' % addr)

# 发送一个信息

#while(True):

client_executor.send(bytes(repr(jso

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的 `socket` 模块和Unity中的 `System.Net.Sockets` 命名空间来在两个应用程序之间进行数据传输。以下是一个简单的例子,演示如何通过socketPythonUnity之间传输字符串数据Python端代码: ```python import socket HOST = '127.0.0.1' # IP地址 PORT = 5000 # 端口号 # 创建socket对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定IP地址和端口号 s.bind((HOST, PORT)) # 开始监听连接 s.listen(1) # 等待连接 conn, addr = s.accept() print('Connected by', addr) # 接收数据 data = conn.recv(1024) print('Received', repr(data)) # 发送数据 conn.sendall(b'Hello from Python') # 关闭连接 conn.close() ``` Unity端代码: ```csharp using System; using System.Net.Sockets; using System.Text; public class SocketClient : MonoBehaviour { private TcpClient client; private NetworkStream stream; private void Start() { try { // 连接Python服务器 string serverIP = "127.0.0.1"; int serverPort = 5000; client = new TcpClient(serverIP, serverPort); stream = client.GetStream(); // 发送数据 string message = "Hello from Unity"; byte[] data = Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); // 接收数据 byte[] buffer = new byte[1024]; int bytesRead = stream.Read(buffer, 0, buffer.Length); string response = Encoding.UTF8.GetString(buffer, 0, bytesRead); Debug.Log("Received: " + response); } catch (Exception ex) { Debug.Log(ex.ToString()); } finally { // 关闭连接 if (stream != null) stream.Close(); if (client != null) client.Close(); } } } ``` 在这个例子中,Python作为服务器监听连接并接收消息,Unity作为客户端连接服务器并发送消息。可以根据实际需求修改代码来传输不同类型的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值