文档章节

树莓派开坑记(1)

hxcw11
 hxcw11
发布于 2015/11/26 22:25
字数 588
阅读 124
收藏 0

首先是昨天在树莓派上弄服务端,一开始满怀热情地用c,后来查了很多资料发现,c实现起来比python复杂(网上找的例子两百多行代码,又一直出问题,弄好他洒家实在做不到啊啊啊),转去python之后,二十几行代码轻松地能用了。。能用了。。

以下是server.py 一个很简单的服务端,只能连接一个客户端,支持重新连接,大致地注释了下

#-*- coding: UTF-8 -*-
import socket
import time
import sys


#服务端的ip和端口啦~
HOST_IP = "192.168.0.106"
HOST_PORT = 8888


#创建Socket,SOCK_STREAM表示类型为TCP
print("Starting socket: TCP...")
#ipv4协议,TCP传输协议
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("创建成功")


print("TCP服务器开始监听,服务器地址为: @ %s:%d!" %(HOST_IP, HOST_PORT))
host_addr = (HOST_IP, HOST_PORT)
#绑定IP和端口,并进行监听
socket_tcp.bind(host_addr)
socket_tcp.listen(1)
while 1:
    #接受Client发出的连接请求,返回值包含了Client的IP和端口
    socket_con, (client_ip, client_port) = socket_tcp.accept()
    print("成功连接 %s." %client_ip)
    socket_con.send("嘿~这里是服务器 @ %s:%d!\n" %(HOST_IP, HOST_PORT))
    while 1:
        #向Clinet发送数据
        try:
            data = socket_con.recv(1024)
            if len(data)>0:
                print("服务器收到信息: %s" %data)
                socket_con.send("OK!\n")
                time.sleep(1)
                continue
        except Exception:
            print("连接断开!")
            break


socket_tcp.close()

然后!是客户端,当然为了偷懒也是用Python写的。

#-*_coding:utf8-*-
import socket
import time
import sys


#要连接的服务端ip
SERVER_IP = "192.168.0.106"
SERVER_PORT = 8888


#ipv4协议和TCP协议
socket_tcp=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_address = (SERVER_IP, SERVER_PORT)




while True:
    try:
        print("正在连接服务器 @ %s:%d..." %(SERVER_IP, SERVER_PORT))
        #连接服务器
        socket_tcp.connect(server_address)
        print("成功连接到服务器 @ %s:%d..." %(SERVER_IP, SERVER_PORT))
        break
    except Exception:
        print("不能连接到服务器,请稍候再试!")
        time.sleep(1)
        continue


while True:
    try:
        print("开始通信...")
        #接收信息
        data = socket_tcp.recv(1024)
        if len(data)>0:
            print("客户端收到的信息为: %s" %data)
        socket_tcp.send("Hello TCP!")
        time.sleep(1)
        continue
    except Exception:
        print("接受信息失败!")
        socket_tcp.close()
        socket_tcp = None
        sys.exit(1)

大概就是这样啦。。

然后就能看到服务端和用户端发神经一样的。。互相发信息

上面是在电脑上运行的。放在树莓派上也是可以的!!

© 著作权归作者所有

hxcw11
粉丝 0
博文 2
码字总数 897
作品 0
宁波
私信 提问
树莓派3B+安装CentOS7

新入手了一块树莓派,没搞过原生的操作系统,所以打算安装CentOS,过程中的踩坑记录如下。 下载CentOS镜像 树莓派使用闪存卡做为自身的磁盘使用,所以需要预先在其它电脑上烧录好系统镜像到闪...

无鱼二饼
05/04
0
0
树莓派 3 或开启物联网革命的大门

如今距离2012年2月第一代树莓派诞生已经过去了四年,现在全新的树莓派3也已经来到了我们的身边。树莓派3采用了64位四核ARM Cortex 1.2GHz处理器,具有内置WiFi与蓝牙。使这款小型设备更为实用...

oschina
2016/03/08
8.5K
43
如何打开和关闭树莓派(绝对新手)

这篇短文教你如何打开树莓派以及如何在之后正确关闭它。 树莓派是最流行的 SBC(单板计算机)之一。如果你对这个话题感兴趣,我相信你已经有了一个树莓派。我还建议你使用其他树莓派配件来开...

作者: Chinmay
08/19
0
0
预告:基于树莓派如何开发机器人 | 硬创公开课

此前我们收到读者反馈,想听一节关于如何用树莓派开发机器人。树莓派为学习计算机编程教育设计的一种微型电脑,其系统基于Linux, 只有信用卡大小但视频、音频等功能通通皆有,可谓是“麻雀虽...

金红
2017/02/16
0
0
升级配置后,树莓派 4 瞄准了桌面市场

树莓派 4 升级配置后开始发售,其 RAM 配置最高可达 4 GB,并支持双 4k 显示。最新硬件配置下,你可以轻松将其作为桌面使用。起售价格依然和旧有型号一样,为 35 美元。 树莓派基金会已经发布...

作者: Ankush Das
07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
9
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部