我有兩臺電腦,都連接到互聯網。我想在它們之間傳輸一些基本數據(字符串,整數,浮點數)。我是新來的網絡,所以我正在尋找最簡單的方法來做到這一點。我會在看什麼模塊來做到這一點?通過互聯網傳輸數據最簡單的方法,Python
兩個系統都將運行Windows 7
我有兩臺電腦,都連接到互聯網。我想在它們之間傳輸一些基本數據(字符串,整數,浮點數)。我是新來的網絡,所以我正在尋找最簡單的方法來做到這一點。我會在看什麼模塊來做到這一點?通過互聯網傳輸數據最簡單的方法,Python
兩個系統都將運行Windows 7
只要它不是異步(做發送和一次接收),你可以使用the socket interface。
如果你喜歡抽象(或需要異步支持),總有Twisted.
下面是套接字接口(這將成爲更難,因爲你的程序變大使用的例子,所以,我建議要麼扭曲或asyncore)
import socket
def mysend(sock, msg):
totalsent = 0
while totalsent < MSGLEN:
sent = sock.send(msg[totalsent:])
if sent == 0:
raise RuntimeError("socket connection broken")
totalsent = totalsent + sent
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("where ever you have your other computer", "port number"))
i = 2
mysend(s, str(i))
Python文檔是優秀的,我從那裏拿起mysend()函數。
如果你正在做計算相關的工作,看看XML-RPC,哪個python已經很好地打包給你。請記住,套接字就像文件一樣,所以它們與編寫代碼並沒有太大的不同,所以,只要你可以做基本的文件io,並且理解事件,套接字編程並不困難,畢竟,套接字編程並不難(只要你不像複用VoIP流那麼複雜...)
如果你完全不知道什麼是socket,那麼使用Twisted可能有點困難。而且,由於您需要確定正在傳輸的數據的類型,事情會變得更加困難。
所以也許python版本的ICE, the Internet Communication Engine會更適合,因爲它隱藏了很多網絡編程的骯髒細節。看看hello world看看它是否做你的工作。
看看這裏: 如果你,我想你,想使用套接字這是你在找什麼:https://docs.python.org/2/howto/sockets.html
我希望這將有助於爲它的工作很適合我。 或爲此連接添加此類:
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)
剛剛做到了!我給了很多人他們應得的榮譽。 – rectangletangle 2011-05-12 04:57:47
而且,幫助你自己在未來獲得更多答案:) 你是少數真正聽過的人之一 – 2011-05-13 20:45:18