js与python通信_P5js和Python通过套接字进行通信

我对套接字的使用比较新,我想让我简单的P5js草图通过套接字与我的Python服务器通信 .

我已经学到了一些基础知识,这里是我能够获得的代码:

Python服务器代码(python)

这是我的python服务器的代码:

#!/usr/bin/env python3

import socket, sys

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:

mysock.bind( ('127.0.0.1',3000) )

except socket.error:

print("Failed to bind")

sys.exit()

mysock.listen(5)

print( "wait for incoming connection")

conn, addr = mysock.accept()

print( conn )

print( addr )

while True:

data = conn.recv(2048)

if not data: break

print("received data: ")

print(data)

conn.close()

mysock.close()

P5js客户端代码(客户端)

这是我的 sketch.js 文件上的代码:

var socket;

function setup()

{

createCanvas( 720, 400 );

noStroke();

fill(255, 0, 0)

frameRate(30);

socket = io.connect('http://127.0.0.1:3000');

}

function draw()

{

background(100, 255, 200);

}

function mouseDragged() {

console.log("Sending: " + mouseX + "," + mouseY);

var data = {

x: mouseX,

y: mouseY

}

socket.emit('mouse', data);

}

我正在启动服务器,然后使用 http-server 命令提供P5js草图 .

当我移动到浏览器并在地址 http://127.0.0.1:8080 加载网页时,python服务器正在收到一些消息

wait for incoming connection

('127.0.0.1', 35432)

received data:

b'GET /socket.io/?EIO=3&transport=polling&t=MK01AKs HTTP/1.1\r\nHost: 127.0.0.1:3000\r\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0\r\nAccept: */*\r\nAccept-Language: en-GB,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nReferer: http://127.0.0.1:8080/\r\nOrigin: http://127.0.0.1:8080\r\nCookie: io=7dpapD9jXEGDhpctAAAA; owa_v=cdh%3D%3E83a0a813%7C%7C%7Cvid%3D%3E1517666775149276089%7C%7C%7Cfsts%3D%3E1517666775%7C%7C%7Cdsfs%3D%3E1%7C%7C%7Cnps%3D%3E2; owa_s=cdh%3D%3E83a0a813%7C%7C%7Clast_req%3D%3E1517768497%7C%7C%7Csid%3D%3E1517767571525272799%7C%7C%7Cdsps%3D%3E1%7C%7C%7Creferer%3D%3E%28none%29%7C%7C%7Cmedium%3D%3Edirect%7C%7C%7Csource%3D%3E%28none%29%7C%7C%7Csearch_terms%3D%3E%28none%29\r\nDNT: 1\r\nConnection: keep-alive\r\n\r\n'

即使浏览器控制台向我显示了很多“发送:鼠标 - 坐标”消息,我拖动鼠标也没有任何内容 .

我究竟做错了什么?

提前感谢您的帮助!任何支持将不胜感激 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python套接字通信是指使用Python编程语言中的套接字(socket)库进行网络通信的过程。套接字是网络编程中常用的一种实现方式,它提供了在网络上进行数据传输的接口。Python套接字库包括了一系列函数和类,可以用于创建和管理套接字对象,并实现数据的发送和接收。 在Python中,套接字通信的基本流程通常包括以下几个步骤: 1. 导入套接字库:首先需要在程序中导入socket模块,即使用`import socket`语句。 2. 创建套接字对象:使用`socket.socket()`函数创建一个套接字对象,该函数有两个参数,分别是套接字的地址族和套接字的类型。常见的地址族有AF_INET(IPv4)和AF_INET6(IPv6),常见的套接字类型有SOCK_STREAM(TCP)和SOCK_DGRAM(UDP)。 3. 绑定套接字到地址和端口:使用`bind()`方法将套接字绑定到指定的地址(IP地址)和端口号,以便在该地址和端口上进行监听和通信。 4. 监听连接请求(对于TCP通信):使用`listen()`方法开始监听来自客户端的连接请求。该方法有一个参数,表示最大连接数。 5. 接受连接请求(对于TCP通信):使用`accept()`方法接受来自客户端的连接请求,并返回一个新的套接字对象和客户端的地址信息。 6. 发送和接收数据:使用新的套接字对象进行数据的发送和接收。可以使用`send()`和`recv()`方法分别发送和接收数据。也可以使用`sendall()`方法连续发送所有数据,并自动处理数据的分割和传输。对于TCP通信,数据是可靠的,保证按发送的顺序接收。对于UDP通信,数据是不可靠的,可能丢失或乱序。 7. 关闭套接字:使用`close()`方法关闭套接字,释放资源。 套接字通信可以用于实现多种应用,例如客户端-服务器模式的网络通信、文件传输、网络游戏、远程控制等。Python中的套接字库提供了丰富的功能和方法,使得网络通信编程变得简单和方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值