(來(lái)自《計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法》)
程序?qū)崿F(xiàn)將小寫(xiě)字母變?yōu)榇髮?xiě)
服務(wù)器端:
from socket import *serverPort = 12000 #創(chuàng)建一個(gè)服務(wù)器端口serverSocket = socket(AF_INET, SOCK_STREAM) #創(chuàng)建一個(gè)TCP套接字serverSocket.bind(('', serverPort)) #關(guān)聯(lián)服務(wù)器端口與套接字serverSocket.listen(1) #服務(wù)器監(jiān)視用戶(hù)TCP連接請(qǐng)求,定義請(qǐng)求連接的最大數(shù)為1print('The server is ready to receive')while 1: connectionSocket, addr = serverSocket.accept() #在服務(wù)器為每個(gè)連接用戶(hù)創(chuàng)建一個(gè)新的套接字 sentence = connectionSocket.recv(1024) #接收客戶(hù)的發(fā)送的內(nèi)容 capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) #將處理過(guò)后的內(nèi)容發(fā)送給客戶(hù) connectionSocket.close()
客戶(hù)端:
from socket import *serverName = 'xxx' #定義要連接的服務(wù)器ip地址serverPort = 12000 #定義要連接的端口號(hào)clientSocket = socket(AF_INET, SOCK_STREAM) #創(chuàng)建一個(gè)TCP套接字clientSocket.connect((serverName, serverPort)) #在用戶(hù)端和服務(wù)器端創(chuàng)建一個(gè)TCP連接sentence = input('Input lowercase sentence:')clientSocket.send(sentence) #發(fā)送要處理的內(nèi)容modifiedSentence = clientSocket.recv(1024) #接收返回的內(nèi)容print('From Server:', modifiedSentence)clientSocket.close()
客戶(hù)端實(shí)現(xiàn):
在運(yùn)行的過(guò)程中可能會(huì)報(bào)錯(cuò):socket error 10060 這是指在連接服務(wù)器時(shí)出現(xiàn)錯(cuò)誤,把服務(wù)器的防火墻關(guān)掉可以連上