Directorio de artículos
Relacionado con el puerto de Windows
El contenido de este artículo es relativamente simple y la parte inicial son algunas descripciones del estado del puerto de Windows.
Consulta de puerto dinámico
netsh int ipv4 show dynamicport tcp
协议 tcp 动态端口范围
---------------------------------
启动端口 : 49152
端口数 : 16384
Configuración de puerto dinámico
Debe ir a la línea de comando del administrador:
netsh int ipv4 set dynamicport tcp start=49152 num=2000
Interfaz de prueba de puerto implementada por Python
El código para implementar un cliente y un servidor en Python es relativamente simple y fácil de operar. En comparación con lenguajes como C/C++, es más adecuado para que los novatos entiendan la programación de Socket.
El código del cliente se perfecciona a partir de la creación de un cliente simple en un principio, porque implica la prueba de ocupación del código del puerto, durante el uso, los lectores pueden implementar el programa de socket correspondiente al entorno según sus propias necesidades.
Sitio web de aprendizaje recomendado: Python Network Programming | Cainiao Tutorial
cliente
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:client.py
from ast import Try
import socket # 导入 socket 模块
import sys
socketList = []
host = socket.gethostname() # 获取本地主机名
remoteHost = '192.168.3.171'
remotePort = 6000 # 设置端口号
errNum = 0
ToTalNum = 0
errPorts = {
}
print("请通过\'netsh int ipv4 show dynamicport tcp\'查看启动端口和端口数,一般情况下该值为49152")
start = eval(input("启动端口:"))
end = eval(input("终止端口:"))
for i in range(start , end):
ToTalNum += 1
s = socket.socket() # 创建 socket 对象
localHostAndPort = (host,i)
try:
s.bind(localHostAndPort)
if s.connect((remoteHost, remotePort)) == socket.error:
print('FAILED', i)
print(s.recv(1024).decode(), i)
socketList.append(s)
except OSError as e:
errNum += 1
errPorts[i] = (localHostAndPort, "OSError:", e)
print("Total Port Number(%r)"%ToTalNum, "Error Port Number(%r)"%errNum)
print("Error Ports:")
for err in errPorts.keys():
print(err, errPorts[err])
if len(errPorts) == 0:
print("All Ports success (%d) ~"%start, "(%d)"% end)
print("输入\'exit\'关闭CLIENT:")
char = input()
while char != "exit":
# print(char)
char = input()
for skt in socketList:
skt.close()
# print(socketList)
Servidor
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:server.py
import socket # 导入 socket 模块
s = socket.socket() # 创建 socket 对象
host = socket.gethostname() # 获取本地主机名
port = 12345 # 设置端口
s.bind((host, port)) # 绑定端口
msg = 'Success!' #strip默认取出字符串的头尾空格
s.listen(5) # 等待客户端连接
while True:
c,addr = s.accept() # 建立客户端连接
print('连接地址:', addr)
c.send(msg.encode('utf-8'))
c.close() # 关闭连接