Python如何网络编程客户端与服务器

系列文章目录

python


概要

随着人工智能的不断发展,本文就介绍了用Python如何实现客户端与服务器的连接,实现多对一的状态,促使自己对python运用更加熟练与熟悉。


一、操作步骤

1.建立与运用

代码如下:

①打开编译环境,然后利用快捷键新建一个Python的文件

②构思实现主线程,子线程的关系

③运行的客户端的代码

import os
import socket
#1 创建一个socket对象,套接字(ip,port)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#ip协议,传输层协议
#2 主动链接服务器
s.connect(("192.168.103.251",13000))#服务器的ip和端口
print("我是客户端,我已链接服务器")
#3 给服务器发送内容
hello_msg = f"hello,我是{os.getlogin()}"
s.send(hello_msg.encode("utf-8"))#发送之前要把字符串编码成字节
#4 接收服务器的欢迎信息
wel_msg = s.recv(1024).decode("utf-8")#接收服务器返回对的欢迎信息
print(f"服务器说{wel_msg}")
# 开始循环给服务器发送输入的内容
# 输入内容 回车就发送给服务器 ,直到输入了q为止
while True:
   msg = input("请输入:")
   s.send(msg.encode("utf-8"))
   if msg == "q":
       break
s.close()#关闭本次链接
print("本次链接已关闭!")

④运行结果的代码

2.处理服务器端代码设置

代码如下:

①建立服务器端的代码

import socket
import threading
def tcplink(link):
   hello_msg = link.recv(1024).decode("utf-8")#接收到字节解码成
   print(f"客户端的打招呼信息:{hello_msg}")
   client_name = hello_msg[8:]#拿到打招呼信息中的姓名
   wel_msg = "欢迎你:"+client_name#服务器返回给客户端的欢迎信息
   link.send(wel_msg.encode("utf-8"))#发回给客户端
   #开始循环接收客户端发来的内容,如果是q就退出循环,不过不是再显示
   while True:
       msg = link.recv(1024).decode("utf-8")
       if msg == "q":
           break
       print(f"{client_name}说:{msg}")
   link.close()
   print("当前连接已关闭!")
#1 创建一个socket对象,套接字(ip,port)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#ip协议,传输层协议
#2 绑定服务器的ip和端口
s.bind(("127.0.0.1",13000))#0到65505之间,不要写1024以下
#3 开始监听客户端的链接
s.listen(100)#100代表可以同时监听到的个数
print("我是服务器,来访问我吧!")
#4 接收链接
while True:
   link = s.accept()[0]#link代表本次链接,用于后续接收内容
   #每过来一个链接,就创建一个线程 一对一的服务这个客户端
   t = threading.Thread(target=tcplink,args=(link,))
   t.start()#开启线程

最后开启热点,然后客户端(各自电脑)连接上同一个服务端(同一个热点),连接上服务端的地址。


总结

代码越少,运行效果越快,要精简代码;还掌握了主线程的应用,多线程:国内版:python 多线程 例子;国际版:python multithreading cheat sheet

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值