1网络通信
Internet上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet 能够运行的基础
计算机与计算机通信会用到通信协议
通信协议,有很多下面只说俩种经常用的:
tcp: 可靠的,有状态的,长连接的协议,想打电话一样
udp:不可靠,无连接,像发短信一样,发送的包的顺序要有编号
socket(套接字)
应用程序通常通过套接字向网络发出请求或应答网络网络请求,让计算机间的进程可以进行通讯也就是进行数据通信(通过流)
服务器端常用的soket方法
S.bind()绑定地址
S.listen()tcp监听
S.accept()接收客户端
客户端常用soket方法
S.connect()链接tcp服务器
s.recv()接收tcp数据
S.send()发送tcp数据
S.sendall()完整发送tcp数据
S.recvfrom()接收udp数据
S.sendto()发送udp数据
S.close()关闭套接字
tcp一对一服务器通信案例:
服务器代码:
import socket import threading serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) serversocket.bind(("192.168.1.158",9999))#绑定服务地址和端口号 print("服务器已等待") serversocket.listen(5)#最多同时接收五个客户端 print("最多同时接收五个客户端") c=serversocket.accept()#接收客户端的链接。c是元组,表示得到的客户端的地址和端口 print("正在等待客户端") def myrerv(c): while True: msg=c[0].recv(1024)#接收消息 print(msg.decode()) threading._start_new_thread(myrerv,(c,)) def myinput(): while True: msg=input() c[0].send(msg.encode()) threading._start_new_thread(myinput())客户端代码:
import socket import threading client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) client.connect(("192.168.1.158",9999)) print("客户端已连接") def myrerv(c): while True: msg=c.recv(1024)#接收消息 print(msg.decode()) threading._start_new_thread(myrerv,(client,)) def myinput(): while True: msg=input() client.send(msg.encode()) threading._start_new_thread(myinput())上面是1对1可以通信的代码 下面为1对多个通信代码 客户端不变
群聊服务器代码:
import socket import threading serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) serversocket.bind(("192.168.1.158",9999))#绑定服务地址和端口号 print("服务器已等待") serversocket.listen(5)#最多同时接收五个客户端 msg=None lock=threading.Lock() mythread=threading.Condition(lock) def server_recv(c,a): global msg while True: mystr=c.recv(1024) mythread.acquire()#线程同步 msg = str(a) + mystr.decode() print(msg) mythread.notify_all() mythread.release() def server_send(c,a): global msg while True: mythread.acquire() mythread.wait() mythread.release() c.send(msg.encode()) print(msg) while True: c,a=serversocket.accept() threading._start_new_thread(server_recv,(c,a)) threading._start_new_thread(server_send,(c,a))2 数据库
数据库的基本概念:
数据库的用处:存储大量数据方便检索和访问
保持数据信息的一致,完整
共享和安全
通过组合分析,产生新的有用信息
存储数据的形式是表格形式存储的
数据库就是数据的仓库
数据库中包含表,关系以及操作对象
数据库存在表中
数据库管理系统 DBMS
数据库的操作
1 检索数据 2 插入数据 3更新数据 4删除数据