基于TCP的客户端服务器通讯的python简单实现

要进行网络通讯,首先需要导入socket模块,后文也使用socket套接字进行实现。

使用socket时,一般分为3个步骤。

  • 创建TCP套接字
  • 使用socket套接字进行通讯
  • 关闭套接字

socket套接字操作起来和file文件操作很类似,所以明白函数的意思就很容易上手。代码比较简单,先直接放上代码。

import socket
"""	
服务器进程
等待客户端连接后,接收客户端发来的数据
回传客户端数据,确认收到
"""
def main():
    tcp_server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建TCP套接字
    tcp_server_socket.bind(("",7890))#绑定本地ip以及7890端口
    tcp_server_socket.listen(128)#将套接字转为被动连接,变成服务器套接字
    #print("---1---")
    new_client_socket,client_addr=tcp_server_socket.accept()#阻塞状态,等待客户端接入
    print(client_addr) #client_addr为客户端地址信息,new_client为返回与客户端连接的新的套接字
    #print("---2---")
    rec_data=new_client_socket.recv(1024) #接收数据
    #print("---3---")
    print(rec_data)
    new_client_socket.send("ACCEPTED".encode("utf-8")) #发送数据给客户端,并解码
    #print("---4---")
    new_client_socket.close()
    tcp_server_socket.close()


if __name__ == '__main__':
    main()

启动服务器进程后等待客户端连接

import socket
"""
客户端进程
输入服务器的ip与port传输数据
"""
def main():
    tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    server_ip=input("please input ip:")

    server_port=int(input("please input port:"))

    server_addr=(server_ip,server_port)#connect方法参数为目标地址元组

    tcp_socket.connect(server_addr)

    send_data=input("please input message: ")

    tcp_socket.send(send_data.encode("utf-8"))#发送数据

    data=tcp_socket.recv(1024)#
    print(data)
    tcp_socket.close()

if __name__ == '__main__':
    main()

我是分别使用windows和虚拟机上的ubuntu进行验证的。
运行服务器进程后,再启动客户端,输入相应的地址即可进行连接。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP (传输控制协议) 是一种面向连接的协议,用于在网络上可靠地传输数据。在 Python 中,我们可以使用 socket 模块来实现 TCP 客户端服务器。 下面是一个简单的例子: ## TCP 服务器 ```python import socket # 创建一个 TCP 服务器套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定地址和端口 server_socket.bind(('127.0.0.1', 8888)) # 开始监听客户端连接 server_socket.listen(1) print('服务器启动,等待连接...') # 接受客户端连接 client_socket, client_address = server_socket.accept() print('客户端连接:', client_address) # 接收客户端发送的数据 data = client_socket.recv(1024) print('收到数据:', data.decode()) # 发送响应数据给客户端 response = 'Hello, client!' client_socket.send(response.encode()) # 关闭连接 client_socket.close() server_socket.close() ``` ## TCP 客户端 ```python import socket # 创建一个 TCP 客户端套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect(('127.0.0.1', 8888)) print('连接服务器成功!') # 发送数据给服务器 message = 'Hello, server!' client_socket.send(message.encode()) # 接收服务器响应数据 response = client_socket.recv(1024) print('收到服务器响应:', response.decode()) # 关闭连接 client_socket.close() ``` 在运行服务器客户端代码之前,请确保您已经安装了 Pythonsocket 模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值