这个是教材《Python核心编程第二版》第16章的代码,如果一点不变动的敲入,会发总是出现问题,整了一些时间才弄好,下边说一下遇到的问题以及解决方法:
首先把运行成功的代码贴出来一下:
服务端代码:运行在python3.3上
#!/usr/bin.env python
# -*- coding: cp936 -*-
from socket import *
from time import ctime
def serverSocket():
HOST = 'localhost' #主机地址
PORT = 21567 #服务器接收端口
BUFSIZ = 1024 #接收套接字的缓冲区大小
ADDR = (HOST, PORT) #仅仅是将二者合起来,作为连接到的服务器地址类型
tcpSerSock = socket(AF_INET , SOCK_STREAM) #udpSerSock = socket(AF_INET , SOCK_DGRAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print ('waiting for connection...')
tcpCliSock, address = tcpSerSock.accept()
print ('connected from :', address)
while True:
recvData = tcpCliSock.recv(BUFSIZ)
if not recvData:
print ('no found data')
break
tcpCliSock.send(('[%s] %s'%(ctime(), recvData)).encode('utf-8'))
tcpCliSock.close()
tcpSerSock.close()
def main():
serverSocket()
if __name__ == '__main__':
main()
客户端代码:
运行在python2.7上
#!/usr/bin/env python
from socket import *
def clientSocket():
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock