socket套接字
客户端程序 与 服务端程序 链接的默认的框架
服务端 必须有ip地址 端口号 传输协议 状态 监听状态
服务端配置启动
源码 服务端配置内容
#!/usr/local/bin/python3
import socket
ip = "" #我哪个ip开放 空表示所有ip
port = 5000 #我要开的端口
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #对象s 使用基于tcp协议的网络套接字
s.bind((ip,port)) #对象s 开始绑定ip和端口
s.listen(1) #启动监听状态
conn,addr = s.accept() #当与别人建立连接 addr变量存对方ip conn 连接的对象
print(addr) #显示对方地址
conn.send(b"welcome") #给对方发送字符串
data = conn.recv(10240) #接收对方字符串
print(data) #打印对方发来的数据
conn.close() #断开连接
s.close() #关闭套结字
客户端验证
如果要做到远程控制对方主机
先编写一个客户端程序
import socket
ip = "192.168.86.11" #对方服务器ip地址
port = 5000 #对方服务器的端口
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #链接对方使用tcp协议 对象建立
c.connect((ip,port))
data = c.recv(10240) #接收数据
print(data) #打印
c.send(b"HELLO") #发送数据给对方
c.close()
升级客户端和服务 源码 实现 循环交互
服务端源码
#!/usr/local/bin/python3
import socket
ip = "" #我哪个ip开放 空表示所有ip
port = 5000 #我要开的端口
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #对象s 使用基于tcp协议的网络套接字
s.bind((ip,port)) #对象s 开始绑定ip和端口
s.listen(1) #启动监听状态
conn,addr = s.accept() #当与别人建立连接 addr变量存对方ip conn 连接的对象
print(addr) #显示对方地址
while True:
data = conn.recv(10240) #接收对方字符串 #如果对方不发数据会卡住
print(data) #打印对方发来的数据
conn.send(data)
if data == b"byebye":
break
conn.close() #断开连接
s.close() #关闭套结字
客户端源码
import socket
ip = "192.168.86.11" #对方服务器ip地址
port = 5000 #对方服务器的端口
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #链接对方使用tcp协议 对象建立
c.connect((ip,port))
while True:
data = input("请输入命令:")
data = bytes(data,encoding="utf8")
c.send(data) #发送数据给对方
data2 = c.recv(10240)
print(data2)
if data == b"byebye":
break
c.close()
升级可以控制服务端程序
服务端最终源码