标签:nec bsp 简单的 sage 网络 == 三次 方式 name
学习python中使用python进行网络编程,编写简单的客户端和服务器端进行通信,大部分内容来源于网络教程,这里进行总结供以后查阅。
先介绍下TCP的三次握手:
1,简单的发送消息:
服务器端:
import socket sk = socket.socket() ip_port = ("127.0.0.1", 8888) sk.bind(ip_port) sk.listen(5) print("正在进行等待接受数据...") conn, address = sk.accept() msg = "hello world!" conn.send(msg.encode()) conn.close()
客户端:
import socket client = socket.socket() ip_port = ("127.0.0.1", 8888) client.connect(ip_port) data = client.recv(1024) print(data.decode())
这里并不能连续发送消息,一次连接发送消息后程序终止。
2.1,连续的发送消息(TCP方式)
服务器端:
import socket import random sk = socket.socket() ip_port = ("127.0.0.1", 8888) sk.bind(ip_port) sk.listen(5) while True: print("正在进行等待接受数据...") conn, address = sk.accept() msg = "hello world!" conn.send(msg.encode()) while True: data=conn.recv(1024) print(data.decode()) if data==b‘exit‘: break conn.send(data) conn.send(str(random.randint(1,1000)).encode()) conn.close()
客户端:
import socket client = socket.socket() ip_port = ("127.0.0.1", 8888) client.connect(ip_port) while True: data = client.recv(1024) print(data.decode()) msg_input=input("please input mesage to send...") client.send(msg_input.encode()) if msg_input== b‘exit‘: break data = client.recv(1024) print(data.decode())
使用while函数,来连续的发送消息。
2.2,连续的发送消息(UDP方式)
服务器端:
import socket #定义udp方式 sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) ip_port=("127.0.0.1",8888) sk.bind(ip_port) while True: data=sk.recv(1024) print(data.decode())
客户端:
#udp import socket sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) ip_port=("127.0.0.1",8888) while True: msg_input=input("please input message to send...") if msg_input==b‘exit‘: break sk.sendto(msg_input.encode(),ip_port) sk.close()
3,多客户端发送消息(TCP方式)
服务器端:
#tcp import socketserver import random class MyServer(socketserver.BaseRequestHandler): def setup(self): pass def handle(self): conn=self.request msg="hello world!" conn.send(msg.encode()) while True: data= conn.recv(1024) print(data.decode()) if data== b‘exit‘: break conn.send(data) conn.send(str(random.randint(1,1000)).encode()) conn.close() def finish(self): pass if __name__=="__main__": server=socketserver.ThreadingTCPServer(("127.0.0.1",8888),MyServer) server.serve_forever()
客户端:
#tcp import socket client = socket.socket() ip_port = ("127.0.0.1", 8888) client.connect(ip_port) while True: data = client.recv(1024) print(data.decode()) msg_input=input("please input mesage to send...") client.send(msg_input.encode()) if msg_input== b‘exit‘: break data = client.recv(1024) print(data.decode())
启动服务器端后,服务器端等待客户端程序连接,我们可以启动多个客户端来连接服务器端。
注:内容来源于互联网
标签:nec bsp 简单的 sage 网络 == 三次 方式 name
原文地址:https://www.cnblogs.com/yaoxing365/p/9498405.html