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個套接字即可。