[Python3.x]python3.5實現socket通訊(TCP)


TCP連接:

tcp是面向連接的一個協議,意味着,客戶端和服務器開發發送數據之前,需要先握手創建一個TCP連接。TCP連接的一端與客戶端套接字相互聯系,另一端與服務器套接字相聯系。當創建該TCP連接的時,我們需要講客戶端與服務器的套接字地址(IP地址和端口號)關聯起來。使用創建的TCP連接,當一側要向另一側發送數據的時候,它只需要經過其套接字將數據丟給TCP連接,不需要再次附上目的地址。

使用TCP連接的客戶-服務器程序:

 

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、客戶端能夠使用一個TCP套接字向服務器發送數據之前,必須在客戶端與服務器之間創建一個TCP連接;

2、clientSocket.connect((serverName,serverPort)):執行三次握手,創建TCP連接;

3、clientSocket.close():關閉客戶端和服務器之間的TCP連接;

4、connectionSocket.close():向客戶端發送完畢之后關閉該連接套接字

 

TCP連接需要兩個套接字,UDP只要一個,

TCP服務器支持n個並行連接,每條連接來自不同客戶端,TCP連接需要n+1個套接字即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM