Python-简单socket的服务端和客户端
基于tcp协议
服务端:
import socket sk = socket.socket() # 实例化一个对象 sk.bind((\'127.0.0.1\',9000)) # 绑定一个地址 ip+端口号 括号里面必须时元组的形式 # 127.0.0.1 表示的本机地址,不过交换机的,只是为了排除一些网络问题,端口号一般写9000之后的数 sk.listen() # 表示开始监听 conn,addr = sk.accpet() # 接受一个链接请求 # conn 是一个对象,addr是请求对象的地址 # conn.send(b\'hello\') # 给请求对象发送hello conn.send(\'hello\'.encode(\'utf-8\')) # 推荐使用 # conn.send(\'你好\'.encode(\'utf-8\')) # 发送中文时只能用这个 msg = conn.recv(1024).decode(\'utf-8\') # 接受客户端发来的消息 print(msg) conn.close() # 与对方的信息传递结束 sk.close() # 关闭
客户端:
import socket sk = socket.socket() sk.connect((\'127.0.0.1\',9000)) msg = sk.recv(1024).decode(\'utf-8\') # 最多接受1024字节 print(msg) sk.send(\'你好\'.encode(\'utf-8\')) sk.close()
基于udp协议
服务端:
# import socket # sk = socket.socket(type=socket.SOCK_DGRAM) from socket import socket,SOCK_DGRAM sk = socket(type=SOCK_DGRAM) sk = bind((\'127.0.0.1\',9000)) while True: msg,cli_addr = sk.recvfrom(1024) # print(msg,cli_addr) # cli_addr 为客户端的地址 print(msg.encode(\'utf-8\')) if msg.encode(\'utf-8\').upper() == \'Q\': continue content = input(\'>>>\') sk.sendto(content.encode(\'utf-8\'),cli_addr)
客户端:
from socket import socket,SOCK_DGRAM sk = socket(type=SOCK_DGRAM) server_addr = (\'127.0.0.1\',9000) # 服务端地址 while True: content = input(\'>>>\') if content.upper() == \'Q\': break sk.sendto(content.encode(\'utf-8\'),server_addr) msg = sk.recv(1024) print(msg.decode(\'utf-8\'))
版权声明:本文为womenzt原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。