python-socket2

本文提供了一个简单的UDP通信示例,包括服务端与客户端的Python代码实现,并解释了字符串与字节之间的转换方法。

UDP,服务端

#! /usr/bin/env python
#coding=utf-8
import socket

#创建socket,指定ipv4,udp类型
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#绑定端口
s.bind(('127.0.0.1',8622))
#绑定端口和TCP一样,但是不需要调用listen()方法,而是直接接收来自任何客户端的数据:

print("绑定端口 8622")
while True:
    #接收数据
    data,addr = s.recvfrom(1024)
    print(data,"接收来自 %s:%s"% addr)
    data = data.decode('utf-8')
    print(data)
    data = "hello " + data
    print(data)
    data = data.encode('utf-8')
    #print(type(data))
    s.sendto(data, addr)

 

UDP,客户端

#! /usr/bin/env python
#coding=utf-8
import socket

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

for data in [b'xr1',b'xr2',b'xr3']:
    
    #发送数据
    s.sendto(data, ('127.0.0.1', 8622))
    #接收数据
    print(s.recv(1024).decode('utf-8'))
s.close()

结果:

 

 

遇到一些问题,传参数的时候,提醒参数不符合类型

s.encode(encoding) -> bytes
b.decode(encoding) -> str
bytes 就是一堆字节,str 是字符串;你把字符串按某种编码编码之后就成了一堆字节,正确地解码后就成了字符串。

 

字符串转成字节的三种方式

str='zifuchuang'

第一种 b'zifuchuang'
第二种bytes('zifuchuang',encoding='utf-8')
第三种('zifuchuang').encode('utf-8')

转载于:https://www.cnblogs.com/R-bear/p/7152609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值