通过Internet传输数据的最简单方法,Python
我有两台电脑,都连接到互联网。我想在它们之间传输一些基本数据(字符串、整数、浮点)。我是网络新手,所以我正在寻找最简单的方法。我将使用哪些模块来完成此任务通过Internet传输数据的最简单方法,Python,python,networking,data-transfer,Python,Networking,Data Transfer,我有两台电脑,都连接到互联网。我想在它们之间传输一些基本数据(字符串、整数、浮点)。我是网络新手,所以我正在寻找最简单的方法。我将使用哪些模块来完成此任务 这两个系统都将运行Windows 7。只要它不是异步的(一次发送和接收),您就可以使用 如果您喜欢抽象(或者需要异步支持),那么 下面是一个socket接口的例子(随着您的程序越来越大,它将变得越来越难使用,因此,我建议使用Twisted或Twisted) 导入套接字 def mysend(sock,msg): totalsent=0 当to
这两个系统都将运行Windows 7。只要它不是异步的(一次发送和接收),您就可以使用 如果您喜欢抽象(或者需要异步支持),那么 下面是一个socket接口的例子(随着您的程序越来越大,它将变得越来越难使用,因此,我建议使用Twisted或Twisted)
导入套接字
def mysend(sock,msg):
totalsent=0
当totalsent
python文档非常优秀,我从中学习了mysend()函数
如果您正在做与计算相关的工作,请检查一下,哪种python已经为您精心打包好了
记住,套接字就像文件一样,所以它们在编写代码时并没有太大的不同,所以,只要你能做基本的文件io,并且理解事件,套接字编程一点也不难(只要你不象多路复用VoIP流那样变得太复杂…如果你完全不知道套接字是什么,使用Twisted可能有点困难。当您需要确定传输的数据类型时,事情会变得更加困难 因此,python版本的可能更适合,因为它隐藏了许多网络编程的肮脏细节。查看一下,看看它是否对您有用。查看此处: 如果你,就像我想的那样,尝试使用套接字,这就是你要寻找的: 我希望这会有所帮助,因为它对我很有效。 或添加此类以实现持续连接:
class mysocket:
'''demonstration class only
- coded for clarity, not efficiency
'''
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
else:
self.sock = sock
def connect(self, host, port):
self.sock.connect((host, port))
def mysend(self, msg):
totalsent = 0
while totalsent < MSGLEN:
sent = self.sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError("socket connection broken")
totalsent = totalsent + sent
def myreceive(self):
chunks = []
bytes_recd = 0
while bytes_recd < MSGLEN:
chunk = self.sock.recv(min(MSGLEN - bytes_recd, 2048))
if chunk == '':
raise RuntimeError("socket connection broken")
chunks.append(chunk)
bytes_recd = bytes_recd + len(chunk)
return ''.join(chunks)
classmysocket:
“仅限示范班”
-编码是为了清晰,而不是效率
'''
定义初始化(self,sock=None):
如果sock为无:
self.sock=socket.socket(
socket.AF_INET、socket.SOCK_STREAM)
其他:
self.sock=sock
def连接(自身、主机、端口):
self.sock.connect((主机、端口))
def mysend(self,msg):
totalsent=0
当totalsent
刚刚做到了!我给了很多人他们应得的荣誉。而且,我帮助自己在将来得到了更多的答案:)你是少数真正倾听的人之一
class mysocket:
'''demonstration class only
- coded for clarity, not efficiency
'''
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
else:
self.sock = sock
def connect(self, host, port):
self.sock.connect((host, port))
def mysend(self, msg):
totalsent = 0
while totalsent < MSGLEN:
sent = self.sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError("socket connection broken")
totalsent = totalsent + sent
def myreceive(self):
chunks = []
bytes_recd = 0
while bytes_recd < MSGLEN:
chunk = self.sock.recv(min(MSGLEN - bytes_recd, 2048))
if chunk == '':
raise RuntimeError("socket connection broken")
chunks.append(chunk)
bytes_recd = bytes_recd + len(chunk)
return ''.join(chunks)