栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

TCP与UDP套接字Python编程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TCP与UDP套接字Python编程

一、套接字

套接字(socket)是同一台主机内应用层和运输层的接口。

进程可类比为一个房子,套接字为该进程的门,当一个进程想向另一台主机发送报文时,该进程把报文推出门(套接字),通过运输层的运输到另一台主机的目的进程,一旦报文到达目的主机,它通过接收进程的门(套接字)传递,接收进程开始处理报文。
可以看到,应用程序开发者在套接字应用层一侧可以控制所有,但是几乎无法控制运输层。

二、UDP编程 1、UDPServer
from socket import *
serverPort = 12000    #服务端的端口号
serverSocket = socket(AF_INET,SOCK_DGRAM)  #创建一个套接字
serverSocket.bind(('',serverPort))         #绑定地址(host,port)到套接字
print("The server is ready to receive")    #提示服务器准备就绪
while True: #死循环,True为布尔值,值为1
    message,clientAddress = serverSocket.recvfrom(2048) #接收UDP数据
    modifiedMessage = message.decode().upper() #解码,转换 upper()方法将字符串小写转换为大写
    serverSocket.sendto(modifiedMessage.encode(), clientAddress) #编码发送到客户端
2、UDPClient
from socket import *
serverName = '127.0.0.1'   #服务端的IP地址
serverPort = 12000            #服务端的端口号
clientSocket = socket(AF_INET,SOCK_DGRAM)  #创建一个套接字
message = input('Input lowercase sentence:')  #从键盘获取报文
clientSocket.sendto(message.encode(),(serverName,serverPort)) #字符串编码发送UDP数据到服务端
modifiedMessage,serverAddresss = clientSocket.recvfrom(2048) #接收UDP数据,返回值:(data,address)
print(modifiedMessage.decode()) #将数据解码并打印
clientSocket.close()  #关闭套接字

三、TCP编程 1、TCPServer
from socket import *
serverPort = 12000    #服务端的端口号
serverSocket = socket(AF_INET,SOCK_STREAM)  #创建一个套接字
serverSocket.bind(('',serverPort))         #绑定地址(host,port)到套接字
serverSocket.listen(1)  #请求连接的最大数
print("The server is ready to receive")    #提示服务器准备就绪
while True:
    connectSocket,addr = serverSocket.accept() #创建连接套接字
    Message = connectSocket.recv(1024).decode() #解码
    capitalizedMessage = Message.upper()     #转化
    connectSocket.send(capitalizedMessage.encode()) #编码发送
    connectSocket.close()  #关闭连接套接字
2、TCPClient
from socket import *
serverName = '127.0.0.1'   #服务端的IP地址
serverPort = 12000            #服务端的端口号
clientSocket = socket(AF_INET,SOCK_STREAM)  #创建一个套接字
clientSocket.connect((serverName,serverPort)) #建立TCP连接,进行三次握手
message = input('Input Message:')  #从键盘获取报文
clientSocket.send(message.encode()) #字符串转化为UTF-8编码,并发送TCP数据到服务端,不需要附加目的地址和端口
modifiedMessage = clientSocket.recv(1024)  #接收TCP数据,返回值:(data)
print('From Server:',modifiedMessage.decode())  #解码输出
clientSocket.close()  #关闭连接套接字
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号