Python网络编程之TCP套接字简单用法示例

日期: 2019-12-21 22:55 浏览次数 :

python使用socket创立tcp服务器和顾客端。

本文实例叙述了Python互连网编制程序之TCP套接字简单用法。分享给大家供大家参照他事他说加以考察,具体如下:

行使Python中的socket模块中的来促成UDP左券,这里写叁个轻易的服务器和顾客端。为了求证互联网编制程序中UDP的采用,这里就不写图形化了,在两台计算机上分别展开UDP的客商端和服务端就足以了。

Python网络编程之TCP套接字简单用法示例。劳务器端为八个时日戳服务器,在收到到客商端发来的多少后,自动还原。

上学期学的微计算机网络,因为后面还未有读书python,而java则孤陋寡闻,C写起来又劳顿,所以一向都未有真正贯彻过TCP套接字编制程序。

UDP:客户数据报合同,是二个面向无连接的商业事务。选拔该合同不需求三个应用程序先制造连接。UDP合同不提供差错复苏,无法提供数据重传,因而该公约传输数据安全性差。 

顾客端,等待客户输入,回车的前边向服务器发送客商输入的内容。

几日前上学了python,而用它来写套接字又非凡有益于轻松,所以自然要试大器晚成试咯。

客户端

各自在python2.7和python3.6下测验。在运转时需求先运维服务器端,在起步客商端。

下边依据代码来介绍一下最简便的tcp程序,由顾客端输入数据,发送给服务器,服务器加上岁月后归来给客户端

python3只好收发二进制数据,要求显式转码

python2.7下

#!/usr/bin/python
'test TCP server'
from socket import *  #套接字所需要的模块
from time import ctime  #时间模块
HOST = ''  #主机名,为空,表示可以绑定在任何有效的地址上。
PORT = 21567  #随机选的可用端口
BUFSIZ = 1024  #发送数据的缓冲区
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)  #第一个参数是socket_family,此处用常用的AF_INET,第二个参数是流套接字,即创建的是tcp
tcpSerSock.bind(ADDR)  #套接字与地址绑定
tcpSerSock.listen(5)  #开始监听,参数表示允许的最大连接数
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept()  #打开大门等待客人,accept返回一个元组(connection,address)。第一个元素是新的socket对象,服务器必须通过它与客户通信;第二个是客户的地址。
  print '...connected from:',addr
  while True:
    data = tcpCliSock.recv(BUFSIZ)  #洗耳恭听,把客人的话记录到data中
    if not data:  #客人话说完了,送客
      break
    tcpCliSock.send('[%s] %s' %(ctime(), data))  #发送当前时间,以及数据给客人
  tcpCliSock.close()  #送客,关闭与该客人通信的套接字
tcpSerSock.close()  #因为上面是死循环,此处不是必须的,只是提醒大家离开的时候务必要关门!
from socket import *

host = '192.168.48.128' # 这是客户端的电脑的ip
port = 13141 #接口选择大于10000的,避免冲突
bufsize = 1024 #定义缓冲大小

addr = (host,port) # 元祖形式
udpClient = socket(AF_INET,SOCK_DGRAM) #创建客户端

while True:
  data = input('>>> ')
  if not data:
    break
  data = data.encode(encoding="utf-8") 
  udpClient.sendto(data,addr) # 发送数据
  data,addr = udpClient.recvfrom(bufsize) #接收数据和返回地址
  print(data.decode(encoding="utf-8"),'from',addr)

udpClient.close()

劳动器端代码为

上边用到了多个套接字,第三个tcpSerSock称为应接套接字,第1个tcpCliSock才是真的肩负与客商端通讯的套接字,那样做的裨益是,三个服务器能够同一时间款待多个客人。

服务器