标签:soc 网络通 rom 字节 .so style 绑定ip recv client
通过简单学习C/S网络构架与网络通信流程.知道:端口+IP能够确定一台电脑上的某一个应用程序.
以访问京东为例,可以分析出需要一个服务器端和一个客户端.
Server端:
#导入socket模块 import socket server = socket.socket() #创建socket对象,创建了一个手机 ip_port = (‘192.168.12.11‘,8002) #给程序设置一个ip地址和端口号,买了个手机卡 server.bind(ip_port) #绑定ip地址和端口,插卡 server.listen() #监听ip地址和端口,简称开机 print(‘111111‘) #测试程序等待执行到哪 conn,addr = server.accept() #等待建立连接, conn是连接通道,addr是客户端的地址,阻塞程序 print(‘222222‘) #服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KB from_client_msg = conn.recv(1024) print(‘高旺说:‘,from_client_msg.decode(‘utf-8‘)) to_client_msg = input(‘高旺的女朋友说:‘) conn.send(to_client_msg.encode(‘utf-8‘)) #回复消息:通过send方法,参数必须是字节类 型的, conn.close() #关闭通道,关电话,通过close方法 server.close() #关闭socket对象,关机
注:服务器端是通过通道(conn)来回复消息(发送消息)
Client端:
#导入socket import socket #创建一个socket对象 client = socket.socket() #找到服务端的ip地址和端口 server_ip_port = (‘192.168.12.11‘,8002) client.connect(server_ip_port) #连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
to_server_msg = input(‘高旺说:‘ client.send(to_server_msg.encode(‘utf-8‘)) #发消息,用的send方法,但是调用者是client的socket对象
from_server_msg = client.recv(1024)
print(‘高旺的女朋友说:‘,from_server_msg.decode(‘utf-8‘))
client.close()
注:客户端是建立的对象.send信息
2. 一直对话的程序
import socket server = socket.socket() ip_port = ("127.0.0.1",8006) server.bind(ip_port) server.listen() conn,addr = server.accept()#等待建立连接 while 1: from_client_msg = conn.recv(1024) print("客户端说:",from_client_msg.decode("utf-8")) server_send_msg = input("服务器说:") conn.send(server_send_msg.encode("UTF-8"))
服务器建立对象,绑定ip和端口,监听;接受建立通道和地址;
客户端:
import socket client = socket.socket() client.connect(("127.0.0.1",8006)) #建立连接 while 1: to_server_msg = input("客户端说:") client.send(to_server_msg.encode("utf-8")) from_server_msg = client.recv(1024).decode("utf-8") print("服务器说:",from_server_msg)
客户端对象,连接服务器ip和端口.
标签:soc 网络通 rom 字节 .so style 绑定ip recv client
原文地址:https://www.cnblogs.com/kevin-red-heart/p/10222672.html