c sharp与python通信
最近在学unity,想在unity调用python。因此学习了使用udp来建立通信。
python发送,c sharp接收
python代码
import socket
import time
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverAddressPort = ("127.0.0.1", 10086) # 5052 定义localhost与端口,当然可以定义其他的host
count = 0
while True:
sock.sendto(str.encode(str(count)), serverAddressPort)
count += 1
time.sleep(1)
c sharp代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace Client
{
class setIpAndPort
{
private string ip;
private int port;
public void setIp(string Ip)
{
ip = Ip;
}
public void setPort(int Port)
{
port = Port;
}
public setIpAndPort(string Ip, int Port)
{
ip = Ip;
port = Port;
}
public string getIp()
{
return ip;
}
public int getPort()
{
return port;
}
}
class Program
{
static void Main(string[] args)
{
// 服务端
setIpAndPort Setting = new setIpAndPort("127.0.0.1", 10086);
// 1、创建Udp Socket
Socket udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
// 2、绑定ip跟端口号
udpServer.Bind(new IPEndPoint(IPAddress.Parse(Setting.getIp()), Setting.getPort()));
// 3、接受数据
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] data = new byte[1024];
while (true)
{
int length = udpServer.ReceiveFrom(data, ref remoteEndPoint);
// 这个方法会把数据的来源(ip:port)放在第二个参数上。
string message = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine("data: "+message);
}
}
}
}
##############################################################
python接收,c sharp发送
python代码
import socket # 导入socket库
HOST = '127.0.0.1'
PORT = 10086
ADDR = (HOST, PORT)
BUFFSIZE = 1024 # 定义一次从socket缓冲区最多读入1024个字节
MAX_LISTEN = 5 # 表示最多能接受的等待连接的客户端的个数
# 创建UDP服务
def udpServer():
# 创建UPD服务端套接字
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
# 绑定地址和端口
s.bind(ADDR)
# 等待接收信息
while True:
# 接收数据和客户端请求地址
data, address = s.recvfrom(BUFFSIZE)
if not data:
break
info = data.decode()
print(f'接收请求信息:{info}')
s.close()
if __name__ == '__main__':
udpServer()
c sharp 代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace Client
{
class Program
{
// 1、创建socket
static void Main(string[] args)
{
Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
// 2、发送数据
EndPoint serverPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10086);
string message = "客户端发来的数据";
byte[] data = Encoding.UTF8.GetBytes(message);
while(true)
udpClient.SendTo(data, serverPoint);
Console.ReadKey();
}
}
}
每天快乐敲代码,快乐生活
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能