python Socket之客戶端和服務(wù)端握手詳解
簡單的學(xué)習(xí)下利用socket來建立客戶端和服務(wù)端之間的連接并且發(fā)送數(shù)據(jù)
1. 客戶端socketClient.py代碼
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立連接: s.connect(('127.0.0.1', 9999)) # 接收歡迎消息: print(s.recv(1024).decode('utf-8')) for data in [b'Michael', b'Tracy', b'Sarah']: # 發(fā)送數(shù)據(jù): s.send(data) print(s.recv(1024).decode('utf-8')) s.send(b'exit') s.close()
2. 服務(wù)端serverSocket.py代碼
import socket import threading import time # from threading import Thread s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 監(jiān)聽端口: s.bind(('127.0.0.1', 9999)) s.listen(5) print('Waiting for connection...') def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr) sock.send(b'Welcome!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8')) sock.close() print('Connection from %s:%s closed.' % addr) while True: # 接受一個(gè)新連接: sock, addr = s.accept() # 創(chuàng)建新線程來處理TCP連接: t = threading.Thread(target=tcplink, args=(sock, addr)) t.start()
3.操作過程
開兩個(gè)控制臺窗口,先運(yùn)行服務(wù)端 python3 serverSocket.py
然后運(yùn)行客戶端 python3 socketClient.py
socket連接截圖如下
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)集合set教程示例詳解
這篇文章主要為大家介紹了Python數(shù)據(jù)結(jié)構(gòu)集合set教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Pycharm虛擬環(huán)境pip時(shí)報(bào)錯(cuò):no?suchoption:--bulid-dir的解決辦法
最近在工作中遇到了些問題,想著大家應(yīng)該也會遇到過,所以給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Pycharm虛擬環(huán)境pip時(shí)報(bào)錯(cuò):no?suchoption:?--bulid-dir的解決辦法,需要的朋友可以參考下2022-07-07python多線程threading.Lock鎖用法實(shí)例
這篇文章主要介紹了python多線程threading.Lock鎖用法,以實(shí)例形式對python鎖的用法進(jìn)行了較為詳細(xì)的分析,需要的朋友可以參考下2014-11-11python GUI計(jì)算器的實(shí)現(xiàn)
這篇文章主要介紹了python gui計(jì)算器的實(shí)現(xiàn),幫助大家更好的理解和學(xué)習(xí)python gui編程,感興趣的朋友可以了解下2020-10-10利用Python封裝MySQLHelper類實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查功能
Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫,本文主要介紹了如何封裝一個(gè)MySQLHelper類,實(shí)現(xiàn)對數(shù)據(jù)庫的增刪改查功能,感興趣的可以了解一下2023-06-06python爬蟲開發(fā)之Beautiful Soup模塊從安裝到詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python爬蟲開發(fā)之Beautiful Soup模塊詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03詳解python模塊pychartdir安裝及導(dǎo)入問題
這篇文章主要介紹了python模塊pychartdir導(dǎo)入問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10