使用Python创建socket连接,实现客户端与服务端的简单TCP通信

客户端:tcp_client.py

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

# 编程思路
# 1、创建socket套接字
# 2、建立TCP连接
# 3、接收、发送数据

import socket

def main(target,port):
    # 1、创建socket套接字
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    # 2、建立TCP连接

    client.connect((target,port))  #传入元组,加一个括号

    # 3、接收、发送数据

    send = input("Please input message:") #获取输入
    messages = str.encode(send)   #将输入的字符串转为字节
    client.send(b"%s" % (messages))    #发送
    response = client.recv(4096)
    print(response)

    # 4、关闭连接
    client.close()

if __name__ == "__main__":
    target = '127.0.0.1'
    port = 4444
    main(target,port)

服务端:tcp_server.py

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

# 编程思路
# 1、创建socket套接字
# 2、绑定IP和端口
# 3、监听
# 4、接收和发送数据

import socket

def main(target,port):
    # 1、创建socket套接字
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    # 2、绑定IP和端口
    server.bind((target,port))

    # 3、监听
    server.listen(10)  #监听的最大连接数
    print("[*] listening on %s:%d" % (target,port))

    # 4、接收和发送数据
    while True:
        client,addr = server.accept()

        print("[*] Accept from %s:%d" % (addr[0],addr[1]))
        response = client.recv(4096)
        print(response)
        client.send(b"[*] send successfully")
        client.close()

if __name__ == "__main__":
    target = "0.0.0.0"
    port = 4444
    main(target,port)

运行结果

运行结果.gif