python的socket编程
Posted lisen10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的socket编程相关的知识,希望对你有一定的参考价值。
socket主要用于长连接
简单DEMO:
Server端:
import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((‘0.0.0.0‘, 8000)) server.listen() sock, addr = server.accept() # 获取从客户端发送的数据 data = sock.recv(1024) print(data.decode("utf8")) sock.send("Hi,{}".format(data.decode("utf8")).encode("utf8")) server.close() sock.close()
client端:
import socket client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((‘127.0.0.1‘, 8000)) client.send("feng".encode("utf8")) data = client.recv(1024) print(data.decode("utf8")) client.close()
结果:
server: feng
client: Hi,feng
简易聊天室:
Server端:
import socket import threading server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((‘0.0.0.0‘, 8000)) server.listen() def handle_sock(sock, addr): data = sock.recv(1024) # 接 print(data.decode("utf8")) re_data = input() sock.send(re_data.encode("utf8")) # 回 # 获取从客户端发送的数据 # 一次获取1k数据 while True: sock, addr = server.accept() # 用线程去处理新接收的连接(用户) client_thread = threading.Thread(target=handle_sock, args=(sock, addr)) client_thread.start()
client端:
import socket client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((‘127.0.0.1‘, 8000)) while True: re_data = input() client.send(re_data.encode("utf8")) # 发 data = client.recv(1024) # 接 print(data.decode("utf8"))
结果:
多个client可以给server发消息
以上是关于python的socket编程的主要内容,如果未能解决你的问题,请参考以下文章
python,socket网络编程,最简单的server端和client端代码