网络编程:
软件:
客户端: cs架构 浏览器: bs架构
如何实现相互通信:
1.编写两个软件,两个软件之前的相互通信
2.用两个网线连接起来
3.使用交换机相互通信(局域网,使用ipconfig在Windows中,在其他操作系统中用ifconfig)
4.交换机和多个路由器
5.公网ip
网络编程开始啦:
服务端
import socket serve=socket.socket() #创建服务端对象socket server.bind(("192.168.158..10",8000)) #绑定ip地址和端口 server.listen(5) #服务端只接受5次请求 print(“服务端准备开始接受”) conn,addr=server.accept() #阻塞等待客户端来连接 # coon是客户端和服务端连接的对象 #addr是客户端的地址 print("已经连接上了客户端信息",coon,addr) date=coon.recv(1024)#阻塞客户端发来的数据 print(date) coon.send(b"你好,我是服务端") coon.close()#与客户端断开连接 server.close()#关闭服务端
客户端 import socket client=socket.socket() #客户端向服务端发起请求连接 client.connect((服务端的地址,端口)) #阻塞去连接,直到连接成功才会向下走 client.send(b"我是客户端,我要情请求")#链接上了服务端之后,向服务端发送消息 data=client.recv(1024) #客户端等待服务端的返回消息 print(data) client.close()#关闭客户端
举例:
服务端: server = socket.socket() server.bind(('192.168.13.116',8001)) server.listen(5) while True: conn,addr = server.accept() # 字节类型 while True: data = conn.recv(1024) # 阻塞 if data == b'exit': break response = data + b' SB' conn.send(response) conn.close() 客户端:sk.connect(('192.168.13.116',8001)) while True: name = input("请输入姓名:") sk.send(name.encode('utf-8')) # 字节 if name == 'exit': break response = sk.recv(1024) # 字节 print(response.decode('utf-8')) sk.close()