python写服务器几点注意的地方

import os
import time
import sys
import socket

class server():
	"""
	server 
	"""
	def __init__(self,port):
		self.port = port
		self.length = 1024
		self.host = ''
		self.max_client_num = 5
		self.client_fd = None
		try:
			self.server_fd = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)
		except:
			print "server socket is wrong!"
	def start(self):
		print "-----start service-----"
		self.server_fd.bind((self.host,self.port))
		self.server_fd.listen(self.max_client_num)
		while True:
			try:
				self.client_fd,addr = self.server_fd.accept()
			except:
				print "accept error!"
				self.client_fd.close()
				break
			#print "server received the client of address: %s" %addr
			print addr
			while True:
				try:
					data = self.client_fd.recv(self.length)
				except:
					print "receive message error!"
					self.client_fd.close()
					break
				if not data:
					self.client_fd.close()
					break
				print data
				self.client_fd.send(str("the server has received the data " + data))
		self.server_fd.close()
				

if __name__ == '__main__':
	service = server(12345)
	service.start()

一、如果是import socket,那么创建套接字应该使用 sockfd = socket.socket来做,因为就socket来说原本是一个模块,socket.socket才是套接字接口;如果是from socket import socket或者from socket import*,那么创建套接字应该使用sockfd = socket这种方法,这个时候因为已经import了socket的函数接口,所以可以直接使用这个api了。

二、bind函数的参数是一个元组,注意(host,port)要用方括号括起来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值