网络编程:
软件: 客户端: cs架构 浏览器: bs架构 如何实现相互通信: 1.编写两个软件,两个软件之前的相互通信 2.用两个网线连接起来 3.使用交换机相互通信(局域网,使用ipconfig在Windows中,在其他操作系统中用ifconfig) 4.交换机和多个路由器 5.公网ip
上代码
服务端:
import socket server = socket.socket() #创建服务器对象 server.bind(("192.168.142.1",8001))#绑定ip和端口 server.listen(5)#服务器只接受五次请求 coon,addr = server.accept()#等待客户端来连接 print("已经连接了客户端",coon,addr) #coon是客户端和服务端连接的对象,addr是客户端的地址 data = coon.recv(1024)#接收客户端发来的消息,接受1024个字节 print(data) coon.send(b"hai")#服务端收到消息后发送消息给客户端 coon.close()#与客户端断开连接 server.close()#关闭服务器
客户端:
import socket
client = socket.socket()#创建socket通信
client.connect(("192.168.142.1",8001))#向服务器发送请求
content = input("Input")
client.send(content.encode('utf8'))
# client.send(b"I am a client")#连接成功后向服务器发送信息
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()
import socket
server = socket.socket() #创建服务器对象
server.bind(("192.168.142.1",8001))#绑定ip和端口
server.listen(5)#服务器只接受五次请求
coon,addr = server.accept()#等待客户端来连接
print("已经连接了客户端",coon,addr)
#coon是客户端和服务端连接的对象,addr是客户端的地址
data = coon.recv(1024)#接收客户端发来的消息,接受1024个字节
print(data)
coon.send(b"hai")#服务端收到消息后发送消息给客户端
coon.close()#与客户端断开连接
server.close()#关闭服务器