Python 在swift中通过套接字发送INT

Python 在swift中通过套接字发送INT,python,ios,sockets,swift,Python,Ios,Sockets,Swift,我正在用swift编写一个应用程序,服务器端一直在用python编写。 我正在努力以正确的方式发送数据。 让我们假设服务器端被设计为接收一个int-这意味着将被表示为类似“\x00\x00\x00\x05”的东西 现在让我们假设在swift代码中有一个值为5的int变量x。 如何将其序列化或以任何方式将其损坏,以将其转换为该字符串并通过套接字发送?您需要将数字从小端转换为大端(也称为网络标准顺序) var编号:UInt32=5 var numberBE=number.bigEndian var

我正在用swift编写一个应用程序,服务器端一直在用python编写。 我正在努力以正确的方式发送数据。 让我们假设服务器端被设计为接收一个int-这意味着将被表示为类似“\x00\x00\x00\x05”的东西

现在让我们假设在swift代码中有一个值为5的int变量x。
如何将其序列化或以任何方式将其损坏,以将其转换为该字符串并通过套接字发送?

您需要将数字从小端转换为大端(也称为网络标准顺序)

var编号:UInt32=5
var numberBE=number.bigEndian
var data=NSMutableData()
data.appendBytes(&number,长度:4)
println(数据)//
var-dataBE=NSMutableData()
dataBE.appendBytes(&numberBE,长度:4)
println(数据库)//

如果服务器设计为接收int,则很可能会将
5
预期为
\x05\x00\x00\x00\x00
,具体取决于处理器、操作系统和服务器代码。正确,我的问题是如何在swift中到达发送此数据的点。我的建议是使用C或ObjC桥并使用C代码。Swift甚至可以直接访问套接字吗?我目前正在使用OutputStream.Write方法发送数据,我可以发送一个简单的字符串,但我不能让该字符串以正确的方式表示int,因为-“\x00\x00\x00\x05”需要一些时间,了解字节、int、数据和endian-ness。这就是我现在得到的结果。问题是,如果我在“”也正在发送的套接字上发送它,并且在python中看到它时\x没有添加。“”只是描述方法的一个工件。您要发送的是字节。数据正好有4个字节。要获取指向字节的指针:
data.bytes
var number : UInt32 = 5
var numberBE = number.bigEndian

var data = NSMutableData()
data.appendBytes(&number, length: 4)
println(data) // <05000000>

var dataBE = NSMutableData()
dataBE.appendBytes(&numberBE, length: 4)
println(dataBE) // <00000005>