python3.5實(shí)現(xiàn)socket通訊示例(TCP)
TCP連接:
tcp是面向連接的一個(gè)協(xié)議,意味著,客戶端和服務(wù)器開(kāi)發(fā)發(fā)送數(shù)據(jù)之前,需要先握手創(chuàng)建一個(gè)TCP連接。TCP連接的一端與客戶端套接字相互聯(lián)系,另一端與服務(wù)器套接字相聯(lián)系。當(dāng)創(chuàng)建該TCP連接的時(shí),我們需要講客戶端與服務(wù)器的套接字地址(IP地址和端口號(hào))關(guān)聯(lián)起來(lái)。使用創(chuàng)建的TCP連接,當(dāng)一側(cè)要向另一側(cè)發(fā)送數(shù)據(jù)的時(shí)候,它只需要經(jīng)過(guò)其套接字將數(shù)據(jù)丟給TCP連接,不需要再次附上目的地址。
使用TCP連接的客戶-服務(wù)器程序:

TCPServer.py
import socket
import socketserver
import time
import threading
serverPort = 50007
serverSocket =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind (('',serverPort))
serverSocket.listen(1)
print('The server is ready to receive')
while 1:
connectionSocket,addr = serverSocket.accept()
sentence = connectionSocket.recv(1024)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()
TCPClient.py
from socket import *
serverName = '127.0.0.1'
serverPort = 50007
clientSocket =socket(AF_INET,SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = input('Input lowercase sentence:')
clientSocket.send(sentence.encode())
modifiedSentence = clientSocket.recv(1024)
print('From Server:',modifiedSentence.decode())
clientSocket.close()
注意:
1、客戶端能夠使用一個(gè)TCP套接字向服務(wù)器發(fā)送數(shù)據(jù)之前,必須在客戶端與服務(wù)器之間創(chuàng)建一個(gè)TCP連接;
2、clientSocket.connect((serverName,serverPort)):執(zhí)行三次握手,創(chuàng)建TCP連接;
3、clientSocket.close():關(guān)閉客戶端和服務(wù)器之間的TCP連接;
4、connectionSocket.close():向客戶端發(fā)送完畢之后關(guān)閉該連接套接字
TCP連接需要兩個(gè)套接字,UDP只要一個(gè),
TCP服務(wù)器支持n個(gè)并行連接,每條連接來(lái)自不同客戶端,TCP連接需要n+1個(gè)套接字即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python中的TCP socket寫法示例
- python使用socket創(chuàng)建tcp服務(wù)器和客戶端
- python TCP Socket的粘包和分包的處理詳解
- Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例
- Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能示例
- Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信
- Python采用socket模擬TCP通訊的實(shí)現(xiàn)方法
- python網(wǎng)絡(luò)編程之TCP通信實(shí)例和socketserver框架使用例子
- Python使用socket模塊實(shí)現(xiàn)簡(jiǎn)單tcp通信
相關(guān)文章
Python爬蟲(chóng)之重放攻擊原理實(shí)例詳解
重放攻擊是一種網(wǎng)絡(luò)攻擊方式,攻擊者通過(guò)截獲合法用戶的請(qǐng)求,并將其重新發(fā)送,以模擬合法用戶的行為,在Python爬蟲(chóng)領(lǐng)域,了解重放攻擊的原理和防范方法至關(guān)重要,本文將深入介紹重放攻擊的概念、示例代碼演示以及防范措施,幫助大家更好地理解和應(yīng)對(duì)這一威脅2023-12-12
用Pycharm實(shí)現(xiàn)鼠標(biāo)滾輪控制字體大小的方法
今天小編就為大家分享一篇用Pycharm實(shí)現(xiàn)鼠標(biāo)滾輪控制字體大小的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
python?subprocess執(zhí)行外部命令常用方法詳細(xì)舉例
這篇文章主要給大家介紹了關(guān)于python?subprocess執(zhí)行外部命令常用方法的相關(guān)資料,Python的subprocess模塊提供了一種在Python中調(diào)用外部命令的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
在Django的模板中使用認(rèn)證數(shù)據(jù)的方法
這篇文章主要介紹了在Django的模板中使用認(rèn)證數(shù)據(jù)的方法,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下2015-07-07
Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項(xiàng)
這篇文章主要給大家介紹了關(guān)于Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
在python3中實(shí)現(xiàn)查找數(shù)組中最接近與某值的元素操作
今天小編就為大家分享一篇在python3中實(shí)現(xiàn)查找數(shù)組中最接近與某值的元素操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
pandas數(shù)據(jù)聚合與分組運(yùn)算的實(shí)現(xiàn)
本文主要介紹了pandas數(shù)據(jù)聚合與分組運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法
這篇文章主要介紹了python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法,實(shí)例分析了Python實(shí)現(xiàn)ping操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

