python3.5實(shí)現(xiàn)socket通訊示例(TCP)
TCP連接:
tcp是面向連接的一個(gè)協(xié)議,意味著,客戶端和服務(wù)器開發(fā)發(fā)送數(shù)據(jù)之前,需要先握手創(chuàng)建一個(gè)TCP連接。TCP連接的一端與客戶端套接字相互聯(lián)系,另一端與服務(wù)器套接字相聯(lián)系。當(dāng)創(chuàng)建該TCP連接的時(shí),我們需要講客戶端與服務(wù)器的套接字地址(IP地址和端口號)關(guān)聯(lián)起來。使用創(chuàng)建的TCP連接,當(dāng)一側(cè)要向另一側(cè)發(fā)送數(shù)據(jù)的時(shí)候,它只需要經(jīng)過其套接字將數(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è)并行連接,每條連接來自不同客戶端,TCP連接需要n+1個(gè)套接字即可。
以上就是本文的全部內(nèi)容,希望對大家的學(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)簡單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)簡單tcp通信
相關(guān)文章
Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel)
這篇文章主要介紹了Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python中property屬性的介紹及其應(yīng)用詳解
這篇文章主要介紹了python中property屬性的介紹及其應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python爬蟲如何應(yīng)對Cloudflare郵箱加密
這篇文章主要介紹了Python爬蟲如何應(yīng)對Cloudflare郵箱加密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點(diǎn)圖代碼示例
這篇文章主要介紹了Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點(diǎn)圖實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Python在畫圖時(shí)使用特殊符號的方法總結(jié)
在制作圖表時(shí),如果遇到需要利用特殊符號進(jìn)行表示時(shí)該怎么辦呢?不用慌,這篇文章為大家總結(jié)了python畫圖中使用各種特殊符號的方式,需要的可以參考一下2022-04-04