python socket之编写一个类QQ通信工具

       今天刚写完ssh程序,感觉跟写一个QQ及时通信的原理差不多,所以就利用下午的时间进行修改一下早上得代码,ssh里面有个bug就是当客户端或者服务端没有输入直接按回车的时候进程就死掉。这里就加个简单的循环判断而已。其他的原理都一样:

服务端代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import os
import time
HOST = ‘‘
PORT = 11111
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(2)
conn,addr = s.accept()

#########-----------------
#print ‘Got client from:‘,addr
while True:
        data = conn.recv(4096)
        print addr,‘ say:\n‘,data
        if not data:
                time.sleep(1.5)
        cmd=raw_input(":")
        if len(cmd)==0:
                print "please input something:"
                continue
        else:
                pass
        conn.sendall(cmd)
conn.close()

 

客户端代码:

#/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
from time import sleep
h = ‘192.168.63.129‘
p = 11111
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((h,p))
print "connect to %s ,please input commend:\n" %(h)
while True:
#       print "from %s say:" %(h)
        INPUT = raw_input(":")
        if len(INPUT) ==0:
                print "your must input your command:"
                continue
        if INPUT == exit:
                break
        s.send(INPUT)
        received_data = s.recv(1024)
        print "from %s say:\n" %(h),received_data
        sleep(1)
s.close()

 

显示效果如下:

服务器端:

客户端效果如下:

 

 

本文出自 “小罗” 博客,请务必保留此出处http://xiaoluoge.blog.51cto.com/9141967/1591740

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。