初始Socket网络编程
导入socket模块
import socket
创建服务器端
sk = socket.socket() 创建服务器实例
ip_port = ("127.0.0.1", 8888) 设置本机地址及端口
sk.bind(ip_port) 绑定主机
sk.listen(5) 设置监听数,至少为1
print("正在接受客户端连接")
while True:
conn, address = sk.accpet() 接受客户端连接
print("接收成功")
msg = "连接成功"
sk.send(msg.encode())
while True:
data = sk.recv(1024) 接受客户端消息
print(data.decode()) 打印数据信息
if data == b'exit': 假如受到exit数据则退出
break
conn.close() 关闭连接
创建客户端
client = socket.socket() 创建客户端实例
ip_port = ("127.0.0.1", 8888) 设置服务器地址及端口
client.connect(ip_port) 连接服务器
data_recv = client.recv(1024) 接受服务器端发送的数据
print(data_recv.decode()) 打印数据信息
while True:
send_data = input("请输入要发送给服务器端的消息:")
client.send(send_data.encode())
if send_data == b'exit':
break
导入socket非阻塞模块
import socketserver
创建socket非阻塞服务器端
class MyServer(socketserver.BaseRequestHandler):
def setup(self):
pass
def handle:
conn = self.request 定义连接变量
msg = "连接成功"
conn.send(msg.encode())
while True:
data = sk.recv(1024) 接受客户端消息
print(data.decode()) 打印数据信息
if data == b'exit': 假如受到exit数据则退出
break
conn.close() 关闭连接
def finish(self):
pass
if __name__ == '__main__':
创建多线程实例:
server = socketserver.ThreadingTCPServer(("127.0.0.1", 8888),MyServer)
开启异步多线程,等待连接:
server.serve_forever()
BTW
通过这些基础的网络搭建,还可以使用open进行文件的上传。