简单的python socket编程
喜欢python的原因之一就是可以偷懒……
最近写点小东西,要用到socket服务器和客户端,用Python实现起来非常的方便。
贴点代码
首先:引用必要的包
import thread from socket import * from time import ctime
接下来定义端口号和地址
HOST = '' PORT = 8888 #端口号 BUFSIZE = 200000 #缓冲区大小 ADD = (HOST,PORT)
然后是定义一个socket对象并把socket对象绑定到刚才定义的地址ADD上
serSock = socket(AF_INET,SOCK_STREAM) serSock.bind(ADD) serSock.listen(10)
接下来就是重点了
while True: print 'waiting for connecting....' cliSock,addr = tcpSerSock.accept() print 'Connected from:',addr def priWord(): while True: data = cliSock.recv(BUFSIZE) if data: print data,'\n>’, thread.start_new_thread(priWord,()) while True: reWord = raw_input('>') if not reWord: break tcpCliSock.send(reWord) cliSock.close() if not raw_input('\nEnter out :'): break serSock.close()
在这个循环中接收和发送数据,都是以数据流的形式来发送。
接收端的代码如下:
import thread from socket import * HOST = 'localhost' PORT = 8888 BUFSIZ = 20000 ADDR = (HOST,PORT) cliSock = socket(AF_INET,SOCK_STREAM) cliSock.connect(ADDR) print 'Enter out!' def priWord(): while True: data = cliSock.recv(BUFSIZ) if data: print ':',data,'\n>', thread.start_new_thread(priWord,()) while True: data = raw_input('>') if not data: break cliSock.send(data) cliSock.close()