接着昨天的UDP CS简单编程。今天进行TCP CS简单编程。
TCP协议与UDP协议的区别之一是TCP在进行数据传输之前需要建立进行三握手并且建立TCP连接。不多说,直接上代码:
客户端代码:
from socket import *
serverPort=12000
serverName='localhost'
clientSocket=socket(AF_INET,SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence=input("please input a lowercase sentence:")
clientSocket.send(sentence.encode())
modifiedsentence=clientSocket.recv(1024)
print(modifiedsentence.decode())
clientSocket.close
服务端代码:
from socket import *
port=12000
serverSocket=socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('',port))
serverSocket.listen(1)
print("server is ready to receive!")
while True:
connectionSocket,addr=serverSocket.accept()
sentence=connectionSocket.recv(1024)
modifiedsentence=sentence.decode().upper()
connectionSocket.send(modifiedsentence.encode())
connectionSocket.close
注意:服务端代码中使用了listen方法,该方法是用于监听客户端建立TCP连接的。参数定义了请求连接的最大个数(至少为1)。
服务端建立了两个套接字:serverSocket与connectionSocket。serverSocket为欢迎套接字,该套接字专门用于服务端客户端的连接。connectionSocket为连接套接字,专门用于与客户端进行通信。程序后面连接套接字关闭了,但欢迎套接字仍未关闭,故仍可接受客户端的连接。
值得注意的是当我们创建客户套接字clientServer时,并没有指定其端口号,此步骤由操作系统完成。