在pycharm中使用socket的记录
第一次写博客笔记十分苦手,希望能坚持下来并提升。 按我自己的习惯,我会分段解释每一行语句的想法,最后再贴上整段代码。
from socket import *
↑先导入socket模块,本来用import socket比较通常些,但每次都要再打里面的函数名就比较麻烦,所以用from好一点
UdpSock = socket(AF_INET,SOCK_DGRAM)
↑AF_INET意思是使用IPv4协议,SOCK_DGRAM则是使用UDP传输,使用socket函数将他们赋给UdpSock变量
UdpSock.bind(("",8899))
↑bind是给当前发送方绑定一个端口号
redata = UdpSock.recvfrom(2048)
↑recvfrom是接收数据流的方法,他会返回一个元组,括号内是接收的上限大小 我这里写的啥是2048字节
print(redata[0].decode("utf-8"))
↑在redata这个变量中 接收到的数据是列表形式第0位是数据流的内容,第1位是数据流的地址(ip跟端口号),这里直接打印redata的第0位 就是直接打印接收到的内容,然后用decode方法去将字节流转换成字符串,括号内是编码格式
cc = input("请输入你要发送的话:")
UdpSock.sendto(cc.encode(),redata[1])
↑ 这两句放一起,可以实现发送键盘输入的话给接收方。sendto方法就是发送的方法,我这里直接将cc变量里,在键盘输入的内容用encode方法转换成字节流,发送的地址就是刚刚说到的redata第一位,就是发送方的地址信息
UdpSock.close()
↑最后再关闭清除掉接收方所占用的内存空间
接下来就是整段完整代码↓
from socket import *
UdpSock = socket(AF_INET,SOCK_DGRAM)
UdpSock.bind(("",8899))
redata = UdpSock.recvfrom(2048)
print(redata[0].decode("utf-8"))
cc = input("请输入你要发送的话:")
UdpSock.sendto(cc.encode(),redata[1])
UdpSock.close()
———————————————————————练级路上肯定枯燥煎熬,一定加油!
|