python 网络编程篇

   基础模拟通话网络程序:

1 #客户端
2 import socket
3 
4 client = socket.socket()
5 client.connect(('localhost',6969))
6 client.send(b"hello ni hao")   #python3 中只能传输字节码
7 data = client.recv(1024)   #1024指定接受的数据大小   将接受的数据赋值给data
8 print("recv:",data)  
9 client.close()
 1 import  socket 
 2 
 3 #服务端
 4 server =  socket.socket()
 5 server.bind(('localhost',6969))  #绑定要监听端口
 6 server.listen() #监听
 7 print("我要开始等电话了")
 8 conn,addr =  server.accept() #等电话打进来   accept 会返回两个值  conn,addr   conn为连接产生的链接实例  客户端连过来而在服务器端为其生成的一个实例  addr对方链接的地址
 9 print("电话来了")
10 data = conn.recv(1024)   #接受1024字节,将接收的数据赋值给data
11 print("recv:",data)
12 conn.send(data.upper())  #将接收的数据进行转大写操作后返回给客户端  
13 server.close()

简易c-s 聊天版本:

 1 #客户端
 2 import socket,time
 3 
 4 client = socket.socket()
 5 client.connect(('10.139.165.32',9502))
 6 print("来聊天啦")
 7 
 8 while True:
 9     message = input("你说:")
10     print(time.ctime())
11     if len(message) == 0:               #当输入为空时候,让用户重新输入
12         continue  
13     client.send(message.encode("utf-8"))   #python3 中只能传输字节码   ,如果是传输的中文则必须先encode utf-8
14     data = client.recv(1024)   #1024指定接受的数据大小   将接受的数据赋值给data
15     print("服务器回应:",data.decode())
16     print(time.ctime())
17 client.close()
 1 import  socket,time
 2 
 3 #服务端
 4 server =  socket.socket()
 5 server.bind(('10.139.165.32',9502))  #绑定要监听端口
 6 
 7 server.listen(5) #监听               此处的5表示默认最大挂起链接  (需要在异步时候才能有效果)
 8 print("我要开始等电话了")
 9 print(time.ctime())
10 while True:
11 
12     conn,addr =  server.accept() #等电话打进来   accept 会返回两个值  conn,addr   conn为连接产生的链接实例  客户端连过来而在服务器端为其生成的一个实例  addr对方链接的地址
13     print("电话来了")
14     print(time.ctime())
15     while True:
16         data = conn.recv(1024)   #接受1024字节,将接收的数据赋值给data
17         if not data:
18             print("客户端链接关闭。。。。")
19             print(time.ctime())
20             break
21             
22         print("client sey :",data.decode())
23         print(time.ctime())
24         message = input("你回复:")
25         print(time.ctime())
26         conn.send(message.encode("utf-8"))  
27             
28 server.close()
原文地址:https://www.cnblogs.com/heaven-xi/p/9536057.html