标签:连接 设计 soc 引入 发送消息 应用 udp sock break
套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。
server
import socket #引入模块 server=socket.socket() #创建server对象 ip_port=(‘192.168.15.78‘,8888) #声明服务端的IP和程序端口 server.bind(ip_port) #把ip_port绑定到对象 server.listen() #监听 while 1: conn,addr=server.accept() #等待客户端连接 while 1: server_msg=input(‘服务端:‘) conn.send(server_msg.encode(‘utf-8‘)) #向客户端发送消息 from_client_msg=conn.recv(1024) #接收客户端消息 print(from_client_msg.decode(‘utf-8‘)) if from_client_msg.decode(‘utf-8‘)==‘byebye‘: #如果收到消息为byebye,就断开此次连接,继续等待下一个客户端连接 break #这就是优雅的断开 conn.close() server.close()
client
import socket client=socket.socket() server_ip_port=(‘192.168.15.78‘,8888) #设置要连接服务端程序的IP和端口 client.connect(server_ip_port) #进行连接 while 1: from_server_msg=client.recv(1024) #接收服务端消息 print(from_server_msg.decode(‘utf-8‘)) client_msg=input(‘客服端:‘) client.send(client_msg.encode(‘utf-8‘)) #向服务端发送消息 if client_msg==‘byebye‘: #如果输入为byebye,就断开连接 break client.close()
server
import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server_ip_port=(‘192.168.12.39‘,8888) server.bind(server_ip_port) while 1: from_client_msg, adrr = server.recvfrom(1024) print(‘来自%s的消息:%s‘%(adrr,from_client_msg.decode(‘utf-8‘))) if from_client_msg.decode(‘utf-8‘)==‘bye‘: break msg=input(‘请输入:‘) msg1=msg+‘,‘+from_client_msg.decode(‘utf-8‘).replace(‘sb‘,‘alexsb‘) server.sendto(msg1.encode(‘utf-8‘),adrr)
client
import socket client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server_ip_port=(‘192.168.12.39‘,8888) while 1: msg=input(‘请输入:‘) client.sendto(msg.encode(‘utf-8‘),server_ip_port) if msg==‘bye‘: break from_server_msg,adrr=client.recvfrom(1024) print(from_server_msg.decode(‘utf-8‘)) client.close()
标签:连接 设计 soc 引入 发送消息 应用 udp sock break
原文地址:https://www.cnblogs.com/sea-stream/p/10086375.html