- soket 编程步骤
# -*- coding: utf-8 -*-
########################################################################
class sckt:
"""去元音缩写变量名 sckt 指代 socket """
#----------------------------------------------------------------------
def __init__(self, host = '192.168.1.3', port = 12345):
print("""地址初始化...""")
self.host = host
self.port = port
#----------------------------------------------------------------------
def run_server(self):
print("""运行服务器...""")
import socket
print("""第一步:创建 socket 对象""")
sckt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("""第二步:将 socket 绑定到指定地址""", self.host, self.port)
sckt.bind((self.host, self.port))
print("""第三步:使用 socket 套接字的 listen 方法接收连接请求""")
sckt.listen(5)
while True:
print("""第四步:通过 socket 的 accept 方法等待客户请求一个连接""")
connection, address = sckt.accept()
try:
print("""第五步:处理阶段,服务器和客户端通过 send 和 recv 方法通信""")
connection.settimeout(5)
buffer = connection.recv(1024)
print(buffer)
if buffer == b'Link':
connection.send(b'Welcome to server!')
else:
connection.send(b'Message form client: ' + buffer)
except socket.timeout:
print(b'Time out!')
print("""最后是:传输结束,服务器调用 socket 的 close 方法关闭连接...""")
connection.close()
#----------------------------------------------------------------------
def run_client(self, message = b'Link'):
print("""运行客户端...""")
import socket
print("""第一步:创建 socket 对象""")
sckt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("""第二步:连接服务器""", self.host, self.port)
sckt.connect((self.host, self.port))
import time
time.sleep(2)
print("""第三步:通信""")
sckt.send(message)
print(sckt.recv(1024))
print("""最后是:关闭连接...""")
sckt.close()
- 通过 cmd 查询地址、端口状态
- 运行效果
# -*- coding: utf-8 -*-
"""加载路径"""
import sys
sys.path.append('D:\360data\重要数据\桌面')
"""加载模块"""
import sckt
"""实例化"""
SCKT = sckt.sckt()
"""运行服务器"""
SCKT.run_server()
"""运行客户端"""
SCKT.run_client()
附流程图: