网络编程之模块的使用
Posted vivi0403
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程之模块的使用相关的知识,希望对你有一定的参考价值。
socket模块的使用
1.模仿CS 架构模型
1.1简版
服务器端
import socket server = socket.socket() #创建一个服务器对象 ip_port = (‘192.168.15.79‘,8080)#创建一个元组 server.bind(ip_port) #将服务器和ip地址进行绑定 server.listen(3) #设置服务器可以同时监听多少个客户端 con,addr =server.accept()#接收客户端发送过来的东西,如果协商成功,就建立相应的隧道 # print(con)#两者协商通信的协议,使用的ip地址和端口号 # #<socket.socket fd=96, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=(‘192.168.15.79‘, 8080), raddr=(‘192.168.15.79‘, 57945)> print(addr)#(‘192.168.15.79‘, 57945) 连接的客户端的地址和端口号 Client = con.recv(1024)#设置接收的最大的文件的大小,并将接收到的信息进行赋值 print(‘客户端消息:‘,Client) con.send(b‘you are over‘)#向客户端发送相关的信息,但只能发送呢bytes类型 con.close() server.close()
客户端
import socket client = socket.socket()#创建客户端 Server_ip = (‘192.168.15.79‘,8080) #设置连接服务器的ip地址和端口 client.connect(Server_ip) #连接服务器 client.send(b‘cisoc‘)#连接完成后向服务端发送信息 cc = client.recv(1024) #设置接收文件的大小 print(cc) client.close()
加强版
服务端
import socket import time server = socket.socket() ip = (‘192.168.15.79‘,8080) server.bind(ip) server.listen(4) con,addr = server.accept() while 1: Input_server = input(‘服务器端的消息:‘).encode(‘utf-8‘) con.send(Input_server) resever_msg = con.recv(1024).decode(‘utf-8‘) print(resever_msg) a = eval(con.recv(1024).decode(‘utf-8‘)) gg = time.localtime(a) print(time.strftime(‘%Y-%m-%d %H:%M:%S‘, gg)) if Input_server == ‘bye‘.encode(‘utf-8‘): break server.close() con.close()
客户端
import socket import time client = socket.socket() ip = (‘192.168.15.79‘,8080) client.connect(ip) while 1 : Resver_msg = client.recv(1024).decode(‘utf-8‘) print(Resver_msg) Input_client = input(‘客户端输入:‘).encode(‘utf-8‘) Time_Send = str(time.time()).encode(‘utf-8‘) client.send(Input_client) client.send(Time_Send) if Input_client == ‘bye‘.encode(‘utf-8‘): break client.close()
以上是关于网络编程之模块的使用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段