简单的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()   
posted on 2009-12-18 18:26  Hanhongji  阅读(585)  评论(2编辑  收藏  举报