c#与python之间通信(通过Socket互传数据)

使用工具

Visual Studio

Python3 

C#

Socket

Socket是常用的通信的常用工具。其通讯协议分为TCP传输或者为UDP传输。TCP传输可以保证不丢包但是传输相对较慢,UDP则传输较快,但是会有丢包现象。这里以TCP传输为例。

首先是客户端,也就是发送数据的的一方。这里用Python作为客户端向服务端发送数据。代码如下:

import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建Socket的客户端
client.connect(('192.168.43.2', 1111))  # 设置相对应的ip地址和端口号 我的IP:192.168.43.2 端口号:1111
while True:
        message = input("发送的信息:")  # 输入要发送的内容
        client.send(message.encode('utf-8'))  # 发送
client.close() #结束后关闭

查看自己电脑的IP地址:打开菜单 输入cmd 打开命令提示符

输入:ipconfig

c#与python之间通信(通过Socket互传数据)_第1张图片找到相对应的ip地址 即可 

接下来是服务端。服务端用于接收客户端传过来的数据,这里使用C#来编写Socket的服务端。

using System;
using System.Net.Sockets;
using System.Net;
using System.Text;

namespace socket_server
{
    class MainClass
    {
        static string ip = "192.168.43.2"; //设置与客户端相应的IP
        static int port = 1111;            //设置与客户端相应的端口号

        public static void Main(string[] args)
        {
            Console.WriteLine("服务器启动.....");
            //创建服务端
            Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //绑定对应的IP与端口号
            EndPoint point = new IPEndPoint(IPAddress.Parse(ip), port);
            server.Bind(point);
            server.Listen(100);
            //设置接收消息
            Socket socket = server.Accept();
            while (true)
            {
                
                byte[] bytes = new byte[1024];
                int len = socket.Receive(bytes);
                string msg = Encoding.UTF8.GetString(bytes, 0, len);
                Console.WriteLine(msg);

            }
        }
    }
}

结果显示如下:

c#与python之间通信(通过Socket互传数据)_第2张图片

 

你可能感兴趣的:(实用工具,python,c#)