33 lines
888 B
Python
33 lines
888 B
Python
import socket
|
|
|
|
from open3d import re
|
|
|
|
|
|
class TcpServer:
|
|
def __init__(self, host="0.0.0.0", port=65444) -> None:
|
|
self.host = host
|
|
self.port = port
|
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
self.sock.bind((self.host, self.port))
|
|
self.sock.listen(1) # 允许最多一个连接(可改大)
|
|
print(f"Listening on {self.host}:{self.port}")
|
|
|
|
def accept_client(self):
|
|
self.conn, self.addr = self.sock.accept()
|
|
self.conn.setblocking(False)
|
|
print(f"Connected by {self.addr}")
|
|
|
|
def recv_data(self, bufsize=4096):
|
|
try:
|
|
data = self.conn.recv(bufsize)
|
|
return data
|
|
except BlockingIOError:
|
|
return ""
|
|
|
|
def send_data(self, data: bytes):
|
|
self.conn.sendall(data)
|
|
|
|
def close(self):
|
|
self.conn.close()
|
|
self.sock.close()
|