Python Socket编程入门教程

  • Post category:Python

Python Socket编程入门教程

什么是Socket

Socket,就是套接字,是网络数据传输的一种方式。Socket允许将一个应用程序连接到网络中的其他应用程序进行通信,它提供了一个表述性的端点,用于在应用程序之间进行数据传输。Socket包含了IP地址和端口号,它们是网络通信的基本元素。

创建Socket

在Python中,使用socket模块提供的函数来创建Socket。下面是一个简单的示例,它创建了一个Socket,并打印出它的类型。

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Socket的类型是:%s" % type(s))

这里使用的是IPv4的地址族,即socket.AF_INET,和TCP协议,即socket.SOCK_STREAM

Socket通信流程

Socket通信的流程如下:

  1. 创建Socket:使用socket.socket()函数创建一个Socket。
  2. 绑定Socket:使用bind()函数将Socket绑定到一个IP地址和端口上。
  3. 监听连接请求:使用listen()函数开始监听连接请求。
  4. 接受连接:使用accept()函数接受客户端的连接请求。
  5. 发送数据:使用send()函数发送数据给客户端。
  6. 接收数据:使用recv()函数接收客户端发送的数据。
  7. 关闭连接:使用close()函数关闭连接。

Socket示例

下面是一个简单的Socket示例,它创建了一个服务器,该服务器接收客户端的连接请求,并向客户端发送欢迎消息。

import socket

HOST = '127.0.0.1'
PORT = 12345

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)

print('等待客户端连接...')
conn, addr = s.accept()
print('客户端已连接:', addr)

data = conn.recv(1024)
print('客户端消息:', data.decode())

conn.sendall('欢迎来到我的Socket服务器!'.encode())

conn.close()

上面的代码中,首先创建了一个Socket,绑定到127.0.0.112345端口上,并开始监听连接请求。然后使用accept()函数接受客户端的连接请求,返回一个连接对象和客户端地址。接着使用recv()函数接收客户端发送的数据,并使用sendall()函数发送欢迎消息给客户端。最后关闭连接。

下面是一个客户端的示例,它连接到上面的服务器,发送一条消息,并接收服务器发送的欢迎消息。

import socket

HOST = '127.0.0.1'
PORT = 12345

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

s.sendall('你好,Socket服务器!'.encode())

data = s.recv(1024)
print('服务器消息:', data.decode())

s.close()

上面的代码中,首先创建了一个Socket,连接到127.0.0.112345端口上,使用sendall()函数发送一条消息,并使用recv()函数接收服务器发送的欢迎消息。最后关闭连接。

总结

本文介绍了Python Socket编程的入门知识,包括什么是Socket、如何创建Socket、Socket通信流程以及两个示例。Socket编程涉及到很多细节,需要仔细阅读文档和代码,深入理解才能掌握。