python socket



客户端
# -*- coding: UTF-8 -*-
import socket
import time
socket.setdefaulttimeout(10) # 设置socket 接收超时
s = socket.socket()

s.connect_ex(('101.37.*.*', 9000)) # 项目服务器,打码
while 1:
    s.send('I am Raspberry Pi'.encode('utf-8'))
    time.sleep(1)
    res = s.recv(1024).decode('utf-8')
    print res

服务端

 1 #!/usr/bin/python
 2 import socket  
 3 import commands   #执行系统命令模块
 4 HOST='127.0.0.1'  # localhost
 5 PORT=50007
 6 s= socket.socket(socket.AF_INET,socket.SOCK_STREAM)   #定义socket类型,网络通信,TCP
 7 s.bind((HOST,PORT))   #套接字绑定的IP与端口
 8 s.listen(1)         #开始TCP监听,监听1个请求
 9 while 1:
10        conn,addr=s.accept()   #接受TCP连接,并返回新的套接字与IP地址
11        print'Connected
12  by',addr    #输出客户端的IP地址
13        while 1:
14                 data=conn.recv(1024)    #把接收的数据实例化
15                cmd_status,cmd_result=commands.getstatusoutput(data)   #commands.getstatusoutput执行系统命令(即shell命令),返回两个结果,第一个是状态,成功则为0,第二个是执行成功或失败的输出信息
16                 if len(cmd_result.strip()) ==0:   #如果输出结果长度为0,则告诉客户端完成。此用法针对于创建文件或目录,创建成功不会有输出信息
17                         conn.sendall('Done.')
18                 else:
19                        conn.sendall(cmd_result)   #否则就把结果发给对端(即客户端)
20 conn.close()     #关闭连接