简单的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()
浙公网安备 33010602011771号