前言
真的来写一个tcp udp试试
环境
- python3.10[client]
- Ubuntu-22.04(wsl)[client]
UDP样例
实现了一个发送字符串,接收大写字符串的udp客户端与服务端
客户端
1 2 3 4 5 6 7 8 9
| from socket import * serverName = '127.0.0.1' serverPort = 12000 clientSocket = socket(AF_INET, SOCK_DGRAM) while True: message = input('Input lowercase sentence:') clientSocket.sendto(message.encode(),(serverName,serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print (modifiedMessage.decode())
|
服务端
1 2 3 4 5 6 7 8 9 10
| from socket import * serverPort = 12000 serverSocket = socket(AF_INET,SOCK_DGRAM) serverSocket.bind(('',serverPort)) print("The server is ready to receive") while True: message, clientAddress = serverSocket.recvfrom(2048) print(message,clientAddress) modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress)
|
TCP样例
tcp要求在传输数据前有三次握手,在python中体现为使用一个socket来进行握手,然后创建另一个socket继续传输
客户端
1 2 3 4 5 6 7 8 9 10 11 12
| from socket import * serverName = '127.0.0.1' serverPort = 12000
while True: sentence = input("input lowercase sentence:") clientSocket = socket(AF_INET,SOCK_STREAM) clientSocket.connect((serverName,serverPort)) clientSocket.send(sentence.encode()) modifiedSentence = clientSocket.recv(1024) print("From server",modifiedSentence.decode()) clientSocket.close()
|
服务端
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from socket import * serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind(('',serverPort)) serverSocket.listen(1) print('The server is ready') while True: connectionSocket, addr = serverSocket.accept() print("connected with",addr) sentence = connectionSocket.recv(1024) modifiedSentence = sentence.upper() connectionSocket.send(modifiedSentence) connectionSocket.close()
|
套接字编程作业
Web服务器
udp ping
邮件客户
多线程web代理