def bind_server(self):
"""
Wrap the bind process
:return:
"""
# define the socket resource, including the type (stream == "TCP")
bind_address = (self.host_ip, self.host_port)
self.logger.debug("Preparing TCP socket {}".format(bind_address))
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# try to speed up reuse
self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# attempt to actually lock resource, which may fail if unavailable
try:
self.server.bind(bind_address)
except OSError as msg:
self.logger.error("socket.bind() failed - {}".format(msg))
self.server.close()
self.server = None
self.logger.error("TCP server socket closed")
raise ConnectionError
# only allow 1 client at a time
self.server.listen(1)
self.logger.info("Waiting on TCP {}, protocol:{}".format(
bind_address, self.host_protocol))
return self.server
评论列表
文章目录