socket scoketserver
Posted ming-yuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket scoketserver相关的知识,希望对你有一定的参考价值。
import socket sk = socket.socket() # 创建了一个socket对象 # sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 避免服务重启的时候报address already in use sk.bind((‘127.0.0.1‘,8080)) # 绑定一台机器的(ip,端口) # 回环地址 - 指向自己这台机器 sk.listen() # 建立监听等待别人连接 conn,addr = sk.accept() # 阻塞:在这里等待直到接到一个连接 print(conn) # conn是连接 print(addr) # addr是对方的地址 msg = conn.recv(1024) # 对方和我说的话 # 有收必有发 收发必相等 print(msg) conn.send(b‘byebye‘) # 字节码(.encode(‘utf-8‘))和对方打招呼 conn.close() # 挂电话 sk.close() # 关机 import socket sk = socket.socket() # 买个手机 sk.connect((‘127.0.0.1‘,8080)) # 拨号 sk.send(b‘hello!‘) ret = sk.recv(1024) print(ret) sk.close() # 黏包现象 import socket sk = socket.socket(type=socket.SOCK_DGRAM) # 建立一个socket对象, 指定以UDP协议的形式来连接 sk.bind((‘127.0.0.1‘,8080)) # 指定服务的地址 msg,addr = sk.recvfrom(1024) # 接收消息,发送端的地址 # 用户用于接收数据报的缓冲区要比数据报大,不然会报错。 print(msg,addr) sk.sendto(b‘HELLO‘,addr) # 给发送端回复消息 sk.close() # 关闭socket连接 import socket sk = socket.socket(type=socket.SOCK_DGRAM) sk.sendto(b‘hello‘,(‘127.0.0.1‘,8080)) # 直接给服务器发送一段消息 msg,addr = sk.recvfrom(1024) # 接收对面的回信 print(msg) sk.close()
scoketserver
import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): self.request.send(b‘hello‘) # conn msg = self.request.recv(1024).decode(‘utf-8‘) print(msg) server = socketserver.ThreadingTCPServer( (‘127.0.0.1‘,9000), MyServer) server.serve_forever()
以上是关于socket scoketserver的主要内容,如果未能解决你的问题,请参考以下文章