后台开发核心技术(08):套接字编程

本文介绍了后台开发中的套接字编程,包括UDP和TCP两种实现方式。通过一个简单的回声服务器示例,展示了客户端如何创建套接字发送数据,以及服务器如何接收、处理并返回数据。在UDP中,客户端与服务器通过指定地址和端口通信;而在TCP中,先进行三次握手建立连接,然后无须指定地址即可通信。
摘要由CSDN通过智能技术生成

通过上篇文章已经看到很多应用层的应用程序,典型的网络应用是由一对程序(客户程序和服务器程序)组成的,它们位于两个不同的端系统中,当运行这两个程序时,创建了一个客户进程和服务器进程,同时它们通过从套接字读出和写入数据在彼此之间进行通信,开发者创建一个网络应用时,其主要任务就是编写客户程序和服务器程序的代码。

我们将使用下列简单的客户-服务器应用程序来演示对于UDPTCP的套接字编程:
1)客户从键盘读取一行字符,并将该字符向服务器发送。
2)服务器接收该数据并将这些数据转化为大写。
3)服务器将修改过的数据发送给客户端。
4)客户端接收修改后的数据并在其监视器上显示出来。

其实这就是一个简单的回声服务器,我们用来测试一下TCP和UDP实现套接字编程的进程间通信。

UDP实现

下图显示了客户和服务器主要的套接字相关的活动:
在这里插入图片描述
假设服务器已经在运行,我们先看一下客户端的代码设计:

// UDPClient.py
from socket import *
serverName = 'hostname'
serverPort = 12000
clientSocket = socket(AF_INET,SOCK_DGRAM)
message = raw_input('Input lowercase sentence:')
clientSocket.sendto(message.encode(),(serverName,serverPort))
modifiedMessage,serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage.decode())
clientSocket.close()

解释:看一下各行代码

from socket import *

该socket模块形成在python中所有网络通信的基础。

serverName = 'hostname'
serverPort = 12000

这里提供了服务器的名称和端口号,服务器名称可以提供主机名(例如:cis.poly.edu)也可以提供IP地址,如果提供了主机名,那么将自动执行DNS从而得到IP地址。

clientSocket = socket(AF_INET,SOCK_DGRAM)

创建了套接字,用于交互信息的套接字,这里有两个参数,第一个是指地址簇&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值