Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Internet传输数据的最简单方法,Python_Python_Networking_Data Transfer - Fatal编程技术网

通过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)