01 python socket 服务器和客户端(简易)

2020-07-17  本文已影响0人  _Mirage

服务器:

# coding=utf-8

import socket

# socket.AF_INET是默认的地址簇
# UDP是socket.SOCK_DGRAM
# TCP是socket.SOCK_STREAM
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本机IP地址
host = socket.gethostname()
# 任意指定端口号(大于1024)
port = 5200
s.bind((host, port))
# 最多同时连接5个客户端
s.listen(5)
while True:
    print('等待客户端连接中...')
    # 阻塞, 直到客户端连接请求, c是客户端套接字, addr是客户端地址
    c, addr = s.accept()
    print(f'来自客户端{addr}的连接..')
    # 向客户端发送数据, 必须发送和传递ascii字符或者二进制流, 非ascii字符需要手动转义成字节流
    c.send(bytes('感谢您的连接..', 'utf-8'))
    # 关闭当前客户端请求
    c.close()

客户端:

# coding=utf-8

import socket


if __name__ == '__main__':
    # 创建客户端套接字对象, TCP协议
    s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 连接到本地端口5200的服务器
    s1.connect((socket.gethostname(), 5200))
    # 注意服务器和客户端必须要完整"握手", 一次发送必须对应一次接收. 最大一次接受1024字节. 
    print(s1.recv(1024).decode('utf-8'))
    # 由于前面服务器在发送完数据后主动关闭了客户端套接字, 所以这里我们不需要再手动关闭.
    # s1.close()

上一篇下一篇

猜你喜欢

热点阅读