点对点无线通信实验报告,单片机点对点通信实验报告

  点对点无线通信实验报告,单片机点对点通信实验报告

  对等通信实验语言:python

  1.socket基础参考:百度百科,socket和CSDN也有很多关于socket的解释。

  2.2.python中使用的相关函数的官方文档

  1) socket.socket (family=af _ inet,type=sock _ stream,proto=0,fileno=none) af _ inet: IPv4协议

  SOCK_STREAM:面向连接的稳定数据传输,即TCP

  2)socket . bind(address)s . bind(address)将套接字绑定到地址。地址的格式取决于地址族。在AF_INET下,地址以元组(主机,端口)的形式表示。

  3)socket.listen(backlog)开始监听传入的连接。Backlog指定在拒绝连接之前可以挂起的最大连接数。Backlog等于5,表示内核收到了连接请求,但是服务器没有调用accept进行处理。最大连接数是5。这个值不能是无限的,因为连接队列应该在内核中维护。

  4)是否阻塞4)socket.setblocking(bool)(默认为True)。如果设置为False,一旦accept和recv中没有数据,将会报告错误。

  5)socket.accept()接受连接并返回(conn,address),其中conn是一个新的socket对象,可用于接收和发送数据。Address是连接客户端的地址。接收TCP客户端的连接(阻塞型)并等待连接到达。

  6)socket.connect(address)连接到地址处的套接字。一般来说,地址的格式是元组(主机名,端口)。如果连接出错,将返回socket.error error错误。

  7)socket.close()关闭套接字

  8)socket.recv(bufsize[,flag])接受套接字的数据。以数据字符串形式返回,bufsize指定可以接收的最大数量。标志提供了有关消息的其他信息,通常可以忽略。

  9)socket.send(string[,flag])将字符串中的数据发送到连接的套接字。返回值是要发送的字节数,可能小于string的字节大小。也就是说,并非所有指定的内容都可以被发送。

  3.尝试在同一个虚拟机上运行两个docker容器。Ip分别为172.17.0.2和172.17.0.3。

  一个是服务器,一个是客户端。

  在服务器上运行server.py,在客户端上运行client.py,如下所示:

  注意,终止程序时使用Ctrl C而不是Ctrl Z,否则程序不会完全关闭,下次运行此程序时会报错。如果使用Ctrl Z关闭程序,可以使用ps aus查看进程,使用kill命令杀死进程并重新运行。

  该过程如下:

  服务器端:

  import socket HOST= 172 . 17 . 0 . 2 PORT=5678 def main():service=socket . socket()service . bind((HOST,PORT)) service.listen(5) print(服务器正在监听.)而True: connection,addr=service . accept()print(addr[0]已连接。)为真时:message=connection.recv(1024)。decode( utf-8 )print(message)if message== # exit # :print(addr[0] exit。)破;connection . close()if _ _ name _ _= _ _ main _ _ :main()client:

  import socket host= 172 . 17 . 0 . 2 PORT=5678 def main():client=socket . socket(socket。AF_INET,socket。SOCK_STREAM) if client.connect((主机,端口))!=socket.error: print(连接成功!)try: while 1: message=input(请输入要发送的消息:)infor=message . encode( utf-8 )client . send(infor)except keyboard interrupt:message= # exit # infor=message . encode( utf-8 )client . send(infor)print( exit)client . close()If _ _ name _ _= _ _ main _ _ :main()注:以上操作都是作者在网上搜集资料后,在个人电脑上成功实验的。如果读者实验失败,可能是一些未知因素造成的,请联系作者。教程编译可能会有错误。请联系作者。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: