精华内容
下载资源
问答
  • Python socket

    2018-11-21 20:20:58
    Python socket socket是什么 socket(简称 套接字) 是进程间通信的一种方式,它能实现不同主机间的进程间通信。 创建socketPython 中 使用socket 模块的函数 socket 就可以完成: socket.socket(AddressFamily, ...

    Python socket

    socket是什么
    socket(简称 套接字) 是进程间通信的一种方式,它能实现不同主机间的进程间通信。
    创建socket
    在 Python 中 使用socket 模块的函数 socket 就可以完成:

    socket.socket(AddressFamily, Type)
    

    说明:
    函数 socket.socket 创建一个 socket,返回该 socket 的描述符,该函数带有两个参数:

    • Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
    • Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)

    创建一个tcp socket(tcp套接字)

    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    

    创建一个udp socket(udp套接字)

    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    
    展开全文
  • python socket

    千次阅读 2019-04-02 10:46:54
    socket()模块函数 创建套接字语法 socket(socket_family, socket_type, protocol = 0) socket_family是AF_UNIX(基于文件)或AF_INET(面向网络); socket_type是SOCK_STREAM(TCP/IP)或SOCK_DGRAM.../usr/bin/python3...

    socket()模块函数
    创建套接字语法

    socket(socket_family, socket_type, protocol = 0)
    

    socket_family是AF_UNIX(基于文件)或AF_INET(面向网络);
    socket_type是SOCK_STREAM(TCP/IP)或SOCK_DGRAM(UDP/IP)

    **

    TCP

    **
    TCP服务端
    服务端结构

    tcps = socket() #创建服务器套接字
    tcps.bind()      #把地址绑定到套接字
    tcps.listen()      #监听链接
    while True:      #服务器无限循环
        tcpc = tcps.accept() #接受客户端链接
        while True:         #通讯循环
            tcpc.recv()/tcpc.send() #对话(接收与发送)
        tcpc.close()    #关闭客户端套接字
    tcps.close()        #关闭服务器套接字(可选)
    

    时间戳服务端实例

    #!/usr/bin/python3
    # -*-coding:utf-8 -*-
    
    from socket import *
    import time
    
    COD = 'utf-8'
    HOST = '192.168.164.141' # 主机ip
    PORT = 21566 # 软件端口号
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    SIZE = 10 
    
    tcpS = socket(AF_INET, SOCK_STREAM) # 创建socket对象
    tcpS.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #加入socket配置,重用ip和端口
    tcpS.bind(ADDR) # 绑定ip端口号
    tcpS.listen(SIZE)  # 设置最大链接数
    
    while True:
        print("服务器启动,监听客户端链接")
        conn, addr = tcpS.accept() 
        print("链接的客户端", addr)
        while True:
            try:
                data = conn.recv(BUFSIZ) # 读取已链接客户的发送的消息
            except Exception:
                print("断开的客户端", addr)
                break
            print("客户端发送的内容:",data.decode(COD))
            if not data:
                break
            msg = time.strftime("%Y-%m-%d %X") #获取结构化事件戳
            msg1 = '[%s]:%s' % (msg, data.decode(COD))
            conn.send(msg1.encode(COD)) #发送消息给已链接客户端
        conn.close() #关闭客户端链接
    
    tcpS.closel()
    
    

    TCP客户端

    客户端结构

    tcpc = socket()    # 创建客户端套接字
    tcpc.connect()    # 尝试连接服务器
    while True:        # 通讯循环
        tcpc.send()/tcpc.recv()    # 对话(发送/接收)
    tcpc.close()      # 关闭客户套接字
    

    时间戳客户端实例

    #!/usr/bin/python3
    # -*-coding:utf-8 -*-
    
    from socket import *
    from time import ctime
    
    HOST = '192.168.164.141' #服务端ip
    PORT = 21566 #服务端端口号
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    
    tcpCliSock = socket(AF_INET, SOCK_STREAM) #创建socket对象
    tcpCliSock.connect(ADDR) #连接服务器
    
    while True:
        data = input('>>').strip()
        if not data:
            break
        tcpCliSock.send(data.encode('utf-8')) #发送消息
        data = tcpCliSock.recv(BUFSIZ) #读取消息
        if not data:
            break
        print(data.decode('utf-8'))
    tcpCliSock.close() #关闭客户端
    

    **

    UDP

    **
    UDP服务端

    服务端结构

    udps = socket()   #创建一个服务器的套接字
    udps.bind()       #绑定服务器套接字
    while True:       #服务器无限循环
        udps.recvfrom()/udps.sendto() # 对话(接收与发送)
    udps.close()        # 关闭服务器套接字
    

    时间戳服务端实例

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    
    
    from socket import *
    import time
    
    HOST = '192.168.3.79' #主机ip地址
    PORT = 22423  #服务器端口号
    SIZE = 1024
    ADDR = (HOST, PORT)
    
    udpC = socket(AF_INET, SOCK_DGRAM)
    udpC.bind(ADDR)
    print("服务器启动...")
    while True:
        conn, addr = udpC.recvfrom(SIZE)
        print('主机[%s]发来消息---->%s'% (addr,conn))
        msg = time.strftime("%Y-%m-%d %X")
        data = "[%s]:%s" % (msg, conn.decode('utf-8'))
        udpC.sendto(data.encode('utf-8'), addr)
    
    

    UDP客户端

    客户端结构

    udpc = socket()   # 创建客户套接字
    while True:      # 通讯循环
        udpc.sendto()/udpc.recvfrom()   # 对话(发送/接收)
    udpc.close()      # 关闭客户套接字
    

    时间戳客户端实例

    #!/usr/bin/python3
    # -*-coding:utf-8 -*-
    
    
    from socket import *
    import time
    
    HOST = '192.168.3.79' #服务器ip地址
    PORT = 22423  #服务器端口号
    SIZE = 1024
    ADDR = (HOST, PORT)
    
    udpS = socket(AF_INET, SOCK_DGRAM) #创建socket对象
    while True: #通讯循环
        msg = input(">>:")
        if not msg: continue #输入为空退出当前循环
        udpS.sendto(msg.encode('utf-8'), ADDR) #发送消息
        conn, addr = udpS.recvfrom(SIZE) #接收消息
        print('服务器[%s]发来消息---->%s' % (addr, conn.decode('utf-8')))
    
    
    
    展开全文
  • Python Socket

    千次阅读 2010-03-29 11:13:00
    Python socket 模块Python 提供了两个基本的 socket 模块。第一个是 Socket,它提供了标准的 BSD Sockets API。第二个是 SocketServer,它提供了服务器中心类,可以简化网络服务器的开发。Python 使用一种异步的...

    Python socket 模块


    Python 提供了两个基本的 socket 模块。第一个是 Socket,它提供了标准的 BSD Sockets API。第二个是 SocketServer,它提供了服务器中心类,可以简化网络服务器的开发。Python 使用一种异步的方式来实现这种功能,您可以提供一些插件类来处理服务器中应用程序特有的任务。表 1 列出了本节所涉及的类和模块。


    表 1. Python 类和模块
    类/模块说明
    Socket 低层网络接口(每个 BSD API)
    SocketServer 提供简化网络服务器开发的类


    让我们来看一下这些模块,以便理解它们是如何工作的。


     



    Socket 模块提供了 UNIX® 程序员所熟悉的基本网络服务(也称为 BSD API)。这个模块中提供了在构建 socket 服务器和客户机时所需要的所有功能。

    这个 API 与标准的 C API 之间的区别在于它是面向对象的。在 C 中,socket 描述符是从 socket 调用中获得的,然后会作为一个参数传递给 BSD API 函数。在 Python 中,socket 方法会向应用 socket 方法的对象返回一个 socket 对象。表 2 给出了几个类方法,表 3 显示了一部分实例方法。


    表 2. Socket 模块的类方法
    类方法说明
    Socket 低层网络接口(每个 BSD API)
    socket.socket(family, type) 创建并返回一个新的 socket 对象
    socket.getfqdn(name) 将使用点号分隔的 IP 地址字符串转换成一个完整的域名
    socket.gethostbyname(hostname) 将主机名解析为一个使用点号分隔的 IP 地址字符串
    socket.fromfd(fd, family, type) 从现有的文件描述符创建一个 socket 对象



    表 3. Socket 模块的实例方法
    实例方法说明
    sock.bind( (adrs, port) ) 将 socket 绑定到一个地址和端口上
    sock.accept() 返回一个客户机 socket(带有客户机端的地址信息)
    sock.listen(backlog) 将 socket 设置成监听模式,能够监听 backlog 外来的连接请求
    sock.connect( (adrs, port) ) 将 socket 连接到定义的主机和端口上
    sock.recv( buflen[, flags] ) 从 socket 中接收数据,最多 buflen 个字符
    sock.recvfrom( buflen[, flags] ) 从 socket 中接收数据,最多 buflen 个字符,同时返回数据来源的远程主机和端口号
    sock.send( data[, flags] ) 通过 socket 发送数据
    sock.sendto( data[, flags], addr ) 通过 socket 发送数据
    sock.close() 关闭 socket
    sock.getsockopt( lvl, optname ) 获得指定 socket 选项的值
    sock.setsockopt( lvl, optname, val ) 设置指定 socket 选项的值


    类方法 和 实例方法 之间的区别在于,实例方法需要有一个 socket 实例(从 socket 返回)才能执行,而类方法则不需要。


    1、服务端-echoserver.py

     

     

    2、客户端-echoclient.py

     

    展开全文
  • Python Socket

    千次阅读 2013-12-15 23:10:32
    #coding= UTF-8 import socket HOST = 'localhost' PORT = 8097 while True: temp = raw_input("请输入:") if temp =="exit": break elif temp!... s = socket.socket(socket.AF_INET,socket.SO
    #coding= UTF-8
    import socket
    HOST = 'localhost'
    PORT = 8097
    
    while True:
        temp = raw_input("请输入:")
        if temp =="exit":
            break
        elif temp!="":
    	s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    	strd = temp + ""
    	s.connect((HOST,PORT))
    	s.send(strd+"")
    	data = s.recv(1024)
    	print data
    	s.close()


    #coding= UTF-8  
    #pythonsocket通信  
    import socket  
    import time  
    
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
    sock.bind(('localhost', 8097)) #绑定IP地址和端口号  
    sock.listen(5)  
    while True:   
         
    	thistime=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime())
    	try:          
    		connection,address = sock.accept()          
    		connection.settimeout(5)#设置超时间          
    		buf = connection.recv(1024) #设置接收长度          
    		print (thistime+"接收到:"+buf+"")          
    		connection.send(thistime+':'+buf)      
    	except socket.timeout:          
    		print 'time out'      
    	connection.close() 
    


    展开全文
  • python socket模块

    千次阅读 2019-06-20 15:44:17
    原链接:...Python socket 模块简介 Python 两个基本的 socket 模块。 Socket 类型 套接字格式 socket.AF_UNIX socket.AF_INET socket.A...
  • 公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些...废话不多说,开始今天的题目:问:简单说说Python socket编程步骤?答:S...
  • python socket编程

    2016-10-07 16:47:19
    python socket编程
  • Python Socket编程

    千次阅读 2017-03-22 21:39:15
    Python Socket编程在使用Pythonsocket编程时,由于需要使用阻塞(默认)的方式来读取数据流,此时对于数据的结束每次都需要自己处理,太麻烦。并且网上也没找到太好的封装,所以就自己写了个简单的封装。封装思路 ...
  • python socket传输图片

    千次阅读 2019-09-02 15:16:54
    使用 python socket库 实现图片传输。
  • Python Socket通信的实现

    千次阅读 多人点赞 2019-01-16 15:58:55
    Python Socket通信的实现Python Socket通信的实现一、Socket通信简介二、代码实现总结 Python Socket通信的实现 一、Socket通信简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一...
  • Python socket编程笔记

    2017-03-08 16:14:57
    Python socket编程笔记来源于Python socket – network programming tutorial 客户端#Socket client example in pythonimport socket #for sockets import sys #for exit#create an INET, STREAMing socket try: #...
  • python socket模块简单介绍 python socket模块简单的介绍 import socket HOST = ’ ’ PORT = 8888 ADDR = (HOST,PORT) BUFSIZE = 1024 新建socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ...
  • 最近在看 Python的视频,针对socket 编程做一个笔记一、socket是什么?socket 通常也称为“套接字”,用于描述 IP 地址和端口,是一个通讯链的句柄。应用程序通常通过 “套接字”向网络发出请求或者应答网络请求。...
  • Python socket 怎么判断连接断开

    万次阅读 2019-09-04 17:15:58
    Python socket 怎么判断连接断开 python socket 断开之后,不是返回‘’,也不是返回None,而是 data = self.__client.recv(1024) if data == b"": print('我去年买了个表的返回空,返回None,浪费爸爸多少时间') ...
  • 欢迎指正和留言讨论哦import socketsocket()函数1,语法格式socket.socket([family[, type[, proto]]])family: 套接字家族可以使AF_UNIX或者AF_INETtype: 套接字类型可以根据是tcp连接和udp连接分为SOCK_STREAM或...
  • python socket 超时设置

    万次阅读 2019-06-14 21:55:57
    python socket 提供 settimeout 设置阻塞 IO 的超时时间,一旦超时,抛出 timeout 异常。不过这样,接收与发送的超时时间都被设置为相同了。如果需要接收与发送设置不同的超时时间,需要利用 socket 选项 SO_...
  • import socketsocket.setdefaulttimeout(0.01)socket.getaddrinfo("123123231", 12345)这个setdefaulttimeout对socket模块方法没有用处,只是针对socket.socket对象设置超时。这点从源代码中可以看出。def create_...
  • python socket 三部曲
  • 栏目介绍socket的通信方法推荐(免费):socket的介绍socket又称“套接字”,socket会通过udp/tcp协议来发送数据,用来实现两台机器的简单通信。注意:如果要用socket实现两台机器的简单通信,请先确保这两台机器连入...
  • python socket编程入门

    2018-02-02 11:45:25
    python socket编程入门(编写server实例) python 编写server的步骤: 1. 第一步是创建socket对象。调用socket构造函数。如: socket = socket.socket( family, type ) family参数代表地址...
  • 问题在工作中经常会用到socket传输数据,例如客户端给服务器发送数据(双方约定了数据格式),在交测之前,自己用python写个接受数据的server,解析下拼成的数据格式是否正确。用python写比C语言简单很多。PS:实际上...
  • import socketsocket.setdefaulttimeout(0.01)socket.getaddrinfo("123123231", 12345)这个setdefaulttimeout对socket模块方法没有用处,只是针对socket.socket对象设置超时。这点从源代码中可以看出。def create_...
  • 关于python socket里面socket.bind()

    千次阅读 2020-06-21 10:16:04
    求助:关于python socket里面socket.bind() 求助:关于import socket之后 socket.bind() 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它...
  • python socket and select

    2016-11-02 18:27:41
    偶然间发现周围同事,上手裸写socket行云流水,看了一会发现,平时忽略了很多下一层的东西,因此想着去尝试熟悉python socket编程。socket简述socket–Berkeley Socket,俗称套接字,实质是一套应用程序API(编程...
  • python socket编程详细介绍

    千次阅读 2017-12-13 13:36:00
    python socket编程详细介绍

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,987
精华内容 13,594
热门标签
关键字:

pythonsocket

python 订阅