zoukankan      html  css  js  c++  java
  • python 中socket模块及用法

    socket是两台计算机用于网络连接,实现数据交换,所必需的一对端口..

    在python中,socket就是一个模块.其他数据实现都是socket模块帮我们实现.

     1 import socket
     2 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)        # 创建TCP Socket
     3 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)         # 创建UDP Socket
     4 # 不写默认family = socket.AF_INET, type = socket.SOCK_STREAM
     5 # socket.AF_UNIX    只能够用于单一的Unix系统进程间通信
     6 # socket.AF_INET      服务器之间网络通信
     7 # socket.AF_INET6     IPV6
     8 
     9 s.bind(('127.0.0.1',8898))      # 作为服务端时,把服务端地址绑定到socket    (知道我是谁)
    10 s.connect(('127.0.0.1',8898))   # 做为客户端时,把服务端地址绑定到socket    (要知道发消息给谁)
    11 s.listen(1)          # 监听链接,参数为同时等待的客户端数目
    12 conn,addr = s.accept() # 接受客户端链接
    13 ret = conn.recv(1024)  # 接收客户端发送的数据,参数是一次最大读取字节数
    14 print(ret)       # 打印客户端数据(字节形式,需解码)
    15 conn.send(b'hi')        # 向客户端发送数据,(字节形式,需编码)
    16 conn.close()       # 关闭客户端套接字
    17 s.close()        # 关闭服务器套接字(可选)
    socket网络传输相关参数

    建立网络连接思想:

    服务端:

    1 创建套接字,绑定套接字到本地IP与端口           # socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    2.绑定套接字到本地IP与端口                     # s.bind()
    3 开始监听连接                                #s.listen()
    4 进入循环,不断接受客户端的连接请求             # s.accept()
    5 然后接收传来的数据                          # s.recv()
    6 发送给对方数据                               # s.sendall()
    7 传输完毕后,关闭套接字                     # s.close()
    TCP服务端思想

    客户端:

    1 创建套接字       # socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
    2 连接远端地址       # s.connect()
    3 连接后发送数据          # s.sendall(), 
    4 接收数据                # s.recv()
    5 传输完毕后,关闭套接字          #s.close()
    TCP客户端思想
  • 相关阅读:
    Java实现第九届蓝桥杯付账问题
    Java实现第九届蓝桥杯付账问题
    Java实现第九届蓝桥杯星期一
    Java实现第九届蓝桥杯星期一
    Java实现第九届蓝桥杯倍数问题
    Java实现第九届蓝桥杯倍数问题
    Java实现第九届蓝桥杯倍数问题
    Java实现第九届蓝桥杯倍数问题
    Java实现第九届蓝桥杯倍数问题
    Java实现第九届蓝桥杯三体攻击
  • 原文地址:https://www.cnblogs.com/NoteBook3013/p/10402274.html
Copyright © 2011-2022 走看看