Day16—总结 套接字

进行通信通信的两端就是套接字;有两种类型,分别是服务器套接字、客户端套接字

服务器

from socket import *
# 1.创建套接字对象(买个电话机)
"""
family - 设置ip协议类型, AF_INET(ipv4), AF_INET6(ipv6)
type - 设置传输协议类型, SOCK_STREAM(TCP), SOCK_DGRAM(UDP)

"""
server = socket(family=AF_INET, type=SOCK_STREAM)

# 2.绑定ip地址和端口(插电话线绑定电话号码)
"""
bind((ip地址, 端口))

ip地址 - 字符串,服务器对应的ip地址
端口号 - int, 端口号用来区分一台电脑上的不同的服务。0-65535, 0-1024是著名端口,一般不选。
        同一时间一个端口只能绑定一个服务
"""
addr = ('10.7.185.82', 8085)
server.bind(addr)

# 3.开始监听请求(按电池,等别人打电话)
server.listen(512)

# 4.让服务器一直运行
while True:
    print('监听状态....')
    # 5.接收请求(接电话)
    # 代码运行到这个位置,会停下来,等到有客户端给服务器发送请求为止。。。
    connect, addr = server.accept()
    print(addr, '连接成功!')

    while True:
        # 6.接收数据(听别人说)
        """
        recv(bufsize)  - bufsize,设置一次性能够接收的数据大小的最大值,单位是字节
                         返回的数据类型是字节
        """
        # print('接收消息前')
        re_data = connect.recv(1024)
        print(re_data.decode(encoding='utf-8'))

        # print('接收消息后')

        # 7.发送数据 (说给别人听)
        message = input('>>>')
        connect.send(message.encode())

    # 8.关闭连接(挂电话)
    connect.close()

客户端

from socket import *

# 1.创建套接字对象
client = socket()

# 2.连接服务器
client.connect(('10.7.185.82', 8085))

while True:
    # 3.发送消息
    message = input('请输入:')
    client.send(message.encode())

    # 4.接收消息
    re_data = client.recv(1024)
    print(re_data.decode(encoding='utf-8'))


你可能感兴趣的:(Day16—总结 套接字)