python SOCKET编程基础入门

作者:心悦君兮君不知-睿 时间:2021-04-20 17:22:33 

一、UDP编程

1.客户端Client:发起访问的一方。

2.服务器端

3.server段编程

(1)建立socket,socket是负责具体通信的一个实例

(2)绑定,为创建的socket指派固定的端口和IP地址

(3)接受对方发送内容

(4)给对方发送反馈,此步骤为非必须步骤

4.Client端编程

(1)建立通信的socket

(2)发送内容到指定服务器

(3)接受服务器给定的反馈内容

5.模拟一下这个过程

(1)我们先建立一个服务器的函数


#服务器案例

import socket



#模拟服务器的函数

def serverFunc():

#1.建立socket

#socket.AF_INET:使用IPV4协议族

#socket.SOCK_DGRAM:使用UDP通信

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

#2.绑定ip和port



#127.0.01:这个ip地址代表的是机器本身

#7852:随机指定的端口号

#地址是一个tuple类型,(ip.port)

addr = ("127.0.0.1",7852)

sock.bind(addr)



#接受对方消息

#等待方式为死等,没有其他可能性

#recvfrom接受的返回值是一个元组,前一项表示数据,后一项表示地址

#参数的含义是缓冲区大小

#rst = sock.recvfrom(500)

data,addr = sock.recvfrom(500)



print(data)

print(type(data))



#发送过来的数据是bytes格式,必须通过解码才能得到str格式内容

#decode默认参数是utf8

text = data.decode()

print(type(text))

print(text)



#给对方反馈的消息

rsp = "I am very hungry now"



#发送的数据需要编程成bytes格式

#默认时utf8

data = rsp.encode()

sock.sendto(data,addr)

if __name__ == "__main__":

print("Start Server")

serverFunc()

print("End Server")

(2)然后创建一个客户端的函数


import socket

def clientFunc():

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

text = "you are very cool"



#发送的数据必须是bytes格式

data = text.encode()

#发送

sock.sendto(data,("127.0.0.1",7852))

data,addr =sock.recvfrom(200)



data = data.decode()

print(text)



if __name__ == "__main__":

print("Start Client")

clientFunc()

print("End Client")

(3)我们先启动服务器端函数

出现如下图像,它是创建了一个sock,然后自己绑定到127.0.0.1:7852,运行到sock.recvfrom(500)这里死等客户端发消息

python SOCKET编程基础入门

(4)再启动客户端函数

出现如下发送编码后的text内容到服务器(127.0.0.1:7852),服务器成功接收后返回you are cool这句话。

python SOCKET编程基础入门

(5)我们再看服务器的函数那里

接受了bytes格式的字符串,并打印出来了,然后再解码打印出来,最后把you are cool返回客户端。

python SOCKET编程基础入门

(6)这里有个地方没有办法:因为我们在一台电脑上做的测试,所以相当于自言自语,不如在两台电脑上进行试验。

二、源码

D33_1_ServerProgramme.py

D33_2_ClientProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

来源:https://www.cnblogs.com/ruigege0000/p/11894654.html

标签:python,SOCKET编程
0
投稿

猜你喜欢

  • 致Python初学者 Anaconda入门使用指南完整版

    2021-09-08 04:48:36
  • linecache模块加载和缓存文件内容详解

    2022-09-23 20:00:45
  • 关于使用python反编译apk签名出包的问题

    2022-12-19 19:39:04
  • JSP EL表达式详细介绍

    2023-07-02 22:32:32
  • JavaScript面向对象的简单介绍

    2008-06-27 12:37:00
  • Django MTV和MVC的区别详解

    2023-06-08 10:15:19
  • PHP crc32()函数讲解

    2023-06-10 00:34:45
  • asp防止盗链HTTP_REFERER判断代码

    2010-03-12 10:41:00
  • python数据结构之链表的实例讲解

    2021-09-24 17:58:46
  • Python ChineseCalendar包主要类和方法详解

    2021-10-12 10:40:40
  • Asp 返回引用类型函数代码

    2011-03-10 10:44:00
  • 2010 图标设计趋势

    2010-12-17 12:44:00
  • 判断 iframe 是否加载完成的完美方法

    2009-09-24 13:35:00
  • 关于xmlhttp乱码的解决方法

    2008-09-24 17:20:00
  • HTML在线编辑器的原理分析(整理)

    2007-12-22 10:25:00
  • 一些让Python代码简洁的实用技巧总结

    2022-02-06 11:03:25
  • python使用电子邮件模块smtplib的方法

    2023-09-29 20:20:38
  • 使用jupyter notebook运行python和R的步骤

    2023-03-30 18:22:50
  • 讲解设计应用程序时避免阻塞的八个准则

    2009-01-04 14:16:00
  • php使用composer常见问题及解决办法

    2023-07-10 13:54:53
  • asp之家 网络编程 m.aspxhome.com