Python网络编程

Posted dear_diary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python网络编程相关的知识,希望对你有一定的参考价值。

Socket:

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

Python提供了两个级别访问的网络服务:

  • 低级别的网络服务支持基本的 Socket,提供了标准的 BSD Sockets API ,可以访问底层操作系统Socket接口的全部方法。
  • 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

socket()函数:

Python中,使用 socket() 函数来创建套接字

socket.socket(family,type,protocol)

参数

  • family: 套接字家族可以使AF_UNIX(用于同一台机器进程间通信)或者AF_INET(用于Internet进程间通信)
  • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM(流式套接字,主要用于TCP协议)SOCK_DGRAM(数据报套接字,主要用于UDP协议)
  • protocol: 一般不填默认为0.

若创建 socket 函数失败,会抛出一个 socket.error 的异常,最好捕获

以下为一个简单的C/S例子

#server.py
import socket  #导入socket模块
import sys

try:
    s = socket.socket() #创建socket对象
except socket.error as msg:
    print(\'Failed to create socket. Error code: \' + str(msg[0]) + \' , Error message : \' + msg[1])
    sys.exit();
host = socket.gethostname()  #获取本地主机名
port = 12345  #设置端口
s.bind((host, port))   #绑定端口

localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print ("local ip:%s "%localIP)

s.listen(5)   #等待客户端连接
while True:
    connection, addr = s.accept()  #建立客户端连接
    print(\'连接地址: \', addr)
    connection.send(\'welcome...\'.encode())
    print(\'Done!\')
    connection.close()  #关闭连接

 

 

#client.py
import socket   #导入socket模块

s = socket.socket()   #创建socket对象
host = socket.gethostname() #获取本地主机名
port = 12345

s.connect((host, port))
data = s.recv(1024)
print(data.decode())
s.close()

 

Socket对象方法:

 

一篇值得学习的博客

以上是关于Python网络编程的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

VSCode自定义代码片段——JS中的面向对象编程

python [代码片段]一些有趣的代码#sort

VSCode自定义代码片段9——JS中的面向对象编程