网络编程之模块的使用

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(byou are over)#向客户端发送相关的信息,但只能发送呢bytes类型
con.close()
server.close()
View Code

客户端

技术分享图片
import socket
client = socket.socket()#创建客户端
Server_ip = (192.168.15.79,8080) #设置连接服务器的ip地址和端口
client.connect(Server_ip) #连接服务器
client.send(bcisoc)#连接完成后向服务端发送信息
cc = client.recv(1024) #设置接收文件的大小
print(cc)
client.close()
View Code

 

加强版

服务端

技术分享图片
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()
View Code

客户端

技术分享图片
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()
View Code

 

以上是关于网络编程之模块的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

Jmeter组件之-Test Fragment(测试片段)

python之模块和包

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

前端面试题之手写promise

python之基础篇——模块与包