套接字模块,如何发送整数

joh*_*345 6 python sockets

我正在客户端读取一个值,并希望将其发送到服务器端,以便检查它是否为素数.我收到错误,因为服务器正在期待一个字符串

服务器端

import socket

tcpsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpsocket.bind( ("0.0.0.0", 8000) ) 

tcpsocket.listen(2)
(client, (ip,port) ) = tcpsocket.accept()

print "received connection from %s" %ip
print " and port number %d" %port

client.send("Python is fun!") 
Run Code Online (Sandbox Code Playgroud)

客户端

import sys
import socket

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

num = int(raw_input("Enter number: "))

tcpsocket.connect( ('192.168.233.132', 8000) ) 
tcpsocket.send(num)
Run Code Online (Sandbox Code Playgroud)

错误必须是字符串或错误,而不是int.

我该如何解决这个问题?

Ser*_*sta 10

切勿在没有定义如何解释接收字节的上层协议的情况下在流上发送原始数据.

您当然可以以二进制或字符串格式发送整数

这两种方法允许您甚至跨不同的体系结构实现数据交换


k4p*_*ppa 2

tcpsocket.send(num)接受string,链接到 api,因此不要将您插入的数字转换为int.