python socket初步

来自计算机网络(自顶向下方法)一书

UDP 通信

UDPclient.py

from socket import *
#指定服务器地址,端口
servername='172.21.213.177'#这里使用的是本机ip,实际使用需要改一下,也可以改为127.0.0.1
serverport=12000
#socket第一个参数指定使用IPV4协议,第二个参数指定这是一个UDP套接字
clientSocket=socket(AF_INET,SOCK_DGRAM)
message=bytes(input('Input lowercase sentences:'),encoding='utf8')
#发送输入的数据
clientSocket.sendto(message,(servername,serverport))
#接收数据,2048指定缓存长度
modifiedMessage,serverAddress=clientSocket.recvfrom(2048)

print(modifiedMessage)
clientSocket.close()

UDPserver.py

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)
	modifiedMessage=message.upper()
	serverSocket.sendto(modifiedMessage,clientAddress)

TCP 通信

TCPclient.py

from socket import *
#指定服务器地址,端口
servername='127.0.0.1'
serverport=12000
#socket第一个参数指定使用IPV4协议,第二个参数指定这是一个TCP套接字
clientSocket=socket(AF_INET,SOCK_STREAM)
#tcp连接需要先经过握手建立连接
clientSocket.connect((servername,serverport))
message=bytes(input('Input lowercase sentences:'),encoding='utf8')
#发送输入的数据,与UDP有点不同,使用的是send方法,不需要指定服务器和端口,因为已经建立了一条tcp连接
clientSocket.send(message)
#接收数据,2048指定缓存长度,使用的是recv方法
modifiedMessage=clientSocket.recv(2048)

print(str.format("from server:{0}",modifiedMessage))
clientSocket.close()

TCPserver.py

from socket import *
serverPort=12000
#创建服务套接字,使用sock_stream指定为tcp类型的socket.
serverSocket=socket(AF_INET,SOCK_STREAM)
#绑定端口
serverSocket.bind(('',serverPort))
serverSocket.listen(1)#监听端口,参数定义了请求连接的最大数,至少为1.
print("The server is ready to receive")
while True:
	#每接受一个请求就建立一个连接,生成一个专属的socket
	connectionSocket,addr=serverSocket.accept()
	sentence=connectionSocket.recv(1024)
	capitalizedSentence=sentence.upper()
	connectionSocket.send(capitalizedSentence)
	connectionSocket.close()

猜你喜欢

转载自blog.csdn.net/whimewcm/article/details/83796099