- 客戶端和服務(wù)器聊天,可以一直聊天赘来,直到一方發(fā)送’拜拜’。然后就可以和下一個人一直聊
服務(wù)器:
from socket import socket
def create_server():
# 創(chuàng)建服務(wù)器的套接字對象
fd_server = socket()
'''
socket(family=AF_INET,type=SOCK_STREAM)
family:確定ip協(xié)議類型
AF_INET - ipv4 /AF_INET6 - ipv6/
type:傳輸協(xié)議類型
SOCK_STREAM - TCP協(xié)議/SOCK_DGRAM UDP協(xié)議/
'''
# 綁定ip地址和端口
fd_server.bind(('10.7.153.196',8080))
'''
bind((ip地址,端口))
端口: 一臺電腦上一個端口標記一個唯一的服務(wù)‰食冢總共65535個端口,0-1024位特殊端口侠畔。
注意: 同一個端口同一時間只能綁定一個服務(wù)结缚。
'''
# 開始監(jiān)聽
fd_server.listen(50)
'''
fd_listen(客戶端最大連接數(shù))
'''
# 讓服務(wù)器處于運行狀態(tài)
while True:
# 連接客戶端,返回連接對象和客戶端地址
# accept()會阻塞線程践图,直到客戶端請求當前服務(wù)器
fd_client, addr = fd_server.accept()
while True:
print('用戶',addr)
msg = input('輸入內(nèi)容:')
fd_client.send(msg.encode())
'''
send(data)
data: python3中要求類型是bytes掺冠,python2中可以字符串
字符串(str)轉(zhuǎn)二進制(bytes):
方法1: 字符串.encode()
方法2: b'str'
方法3: bytes(字符串, 編碼方式)
'''
# 接受從客戶端發(fā)送過來的數(shù)據(jù)
recv_data = fd_client.recv(1024)
print(str(recv_data,'utf-8'))
'''
recv(buffsize)- recv()方法也會阻塞線程
buffsize: 每次能夠接收的最大的字節(jié)數(shù)
返回值: 接受的數(shù)據(jù)
二進制轉(zhuǎn)換為字符串:
方法1:bytes數(shù)據(jù).decode()
方法2:str(bytes數(shù)據(jù),編碼方式)
'''
if msg == '拜拜':
fd_client.send('你的客戶端已解除'.encode())
fd_server.close()
if __name__ == '__main__':
create_server()
客戶端:
from socket import socket
def create_client():
# 創(chuàng)建套接字對象
fd_client = socket()
fd_server = socket()
# 連接服務(wù)器
fd_client.connect(('10.7.153.200',8080))
'''
connect(服務(wù)器地址)
'''
# 接受消息
while True:
recv_data = fd_client.recv(1024)
print(recv_data.decode())
# 發(fā)送消息
msg = input('輸入內(nèi)容:')
fd_client.send(msg.encode())
# 斷開連接
if msg == '拜拜':
fd_client.send('我要關(guān)閉連接了,down'.encode())
fd_client.close()
if __name__ == '__main__':
create_client()
- 下載網(wǎng)絡(luò)圖片(https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2808438283,4249462766&fm=26&gp=0.jpg)到本地
import requests
def download_img(url):
cont = requests.get(url)
with open('./files/luffy.jpg','wb') as f:
f.write(cont.content)
if __name__ == '__main__':
url = 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2808438283,4249462766&fm=26&gp=0.jpg'
download_img(url)