Ubuntu启一个tcp server,client去连接

1、在~/source/code/python目录下创建两个py文件:

server_8079.py、client_8079.py

server_8079.py的代码:

python 复制代码
# server.py
import socket

def start_server(host, port):
    # 创建一个TCP/IP套接字
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 绑定套接字到地址和端口
    server_socket.bind((host, port))
    
    # 监听传入连接
    server_socket.listen(1)
    print(f"Server listening on {host}:{port}")
    
    while True:
        # 等待连接
        client_socket, addr = server_socket.accept()
        try:
            print(f"Connection from {addr}")
            
            # 接收数据
            data = client_socket.recv(1024)
            print(f"Received: {data.decode('utf-8')}")
            
            # 发送响应
            response = "Hello from server!"
            client_socket.sendall(response.encode('utf-8'))
        finally:
            # 清理连接
            client_socket.close()

if __name__ == "__main__":
    HOST = '192.168.111.128'
    PORT = 8079
    start_server(HOST, PORT)

client_8079.py的代码:

python 复制代码
# client.py
import socket

def start_client(host, port):
    # 创建一个TCP/IP套接字
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    try:
        # 连接到服务器
        client_socket.connect((host, port))
        
        # 发送数据
        message = "Hello from client!"
        client_socket.sendall(message.encode('utf-8'))
        
        # 接收响应
        response = client_socket.recv(1024)
        print(f"Received: {response.decode('utf-8')}")
    finally:
        # 清理连接
        client_socket.close()

if __name__ == "__main__":
    HOST = '192.168.111.128'
    PORT = 8079
    start_client(HOST, PORT)

打开2个terminal:

在第1个terminal输入:

python3 server_8079.py

在第2个terminal输入:

python3 client_8079.py

相关推荐
TG_yunshuguoji2 小时前
亚马逊云代理商: 深度解析AWS RDS备份机制 快照 vs PITR如何选?
服务器·云计算·aws
A懿轩A2 小时前
【MySQL 数据库】SQL 基础语法速成:SELECT / INSERT / UPDATE / DELETE 一篇上手增删改查
数据库·sql·mysql
范纹杉想快点毕业2 小时前
状态机设计模式与嵌入式系统开发完整指南
java·开发语言·网络·数据库·mongodb·设计模式·架构
Trouvaille ~2 小时前
【Linux】UDP Socket编程实战(四):地址转换函数深度解析
linux·服务器·网络·c++·udp·socket·地址转换函数
峥嵘life2 小时前
Android16 【GSI】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·运维·服务器·学习
达子6662 小时前
Ubuntu的Gparted 无法扩展内存 报错umount: /sdb1: target is busy
linux·运维·ubuntu
李慕婉学姐2 小时前
Springboot眼镜店管理系统ferchy1l(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
lisanmengmeng2 小时前
cephadm 17.2.5安装部署 (二)
linux·运维·服务器·ceph
dump linux2 小时前
Linux 显示服务器与合成器架构详解
linux·驱动开发·3d