zoukankan      html  css  js  c++  java
  • python socket 网络编程

     

     

    socket 套接字:网络接口。

    我们在网络上需要传输自己需要的数据,我们在网络上传输数据使用的是网络协议,

    而套接字就是我们将数据从本地采用协议传输的接口

     

     

    socket模型:

     

     

    socket族:
    #AF_UNIX 被使用在类unix系统之间进行通信的socket族
    #AF_INET 被使用在网络间的通信的socket族
    #AF_INET6 被使用在ipv6协议上的socket族
    socket类型:
    #SOCK_STREAM 针对于tcp/ip协议的socket类型
    #SOCK_DGRAM 针对udp协议的socket类型

     

    一、第一个socket例子:

    #socket_server

    import socket

    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)   #创建socket对象
    sock.bind(("127.0.0.1",8001))                        #绑定套接字
    sock.listen(5)                                            #监听 ,连接等待的队列大小

     
    conn,add=sock.accept()                  #  conn : <socket._socketobject object at 0x7f1c6010da60>  客户端的socket对象 # add: ('127.0.0.1', 34548)
    print(conn.recv(512))                  #接收信息
    conn.send("hello I am server".encode("utf-8"))     #发送信息
    sock.close()            #关闭连接

    #socket_client

    import socket

    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)          #创建socket对象
    sock.connect(("127.0.0.1",8001))                                #连接指定服务
    sock.send("I am client".encode("utf-8"))        #发送信息

    print(sock.recv(512))                 #打印接收到信息
    sock.close()        #关闭连接

     

     eg1:

     #server

    import socket
    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.bind(("127.0.0.1",8006))
    sock.listen(5)
    while True:
      conn,add=sock.accept()
      while True:
        recvs = conn.recv(512)
        print(recvs)

        if recvs == "break":
          break
        sends = raw_input(">>>>")
        conn.send(sends)
        if sends == "break":
          break
    sock.close()

     

     #client

    import socket

    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.connect(("127.0.0.1",8006))
    while True:
      sends = raw_input(">>>>")
      sock.send(sends)
      recvs = sock.recv(512)
      print(recvs)
      if recvs == "break":
        break
    sock.close()

     

  • 相关阅读:
    安装虚拟机及学习linux系统 20155222卢梓杰
    技能获取与编程学习 卢梓杰20155222
    人生第一篇博客
    20155228 2016-2017-2 《Java程序设计》第1周学习总结
    20155228 基于VirtualBox安装Ubuntu和学习linux命令的学习经历和心得
    20155228 获取技能的成功经验和关于C语言学习的调查
    20155228 你期望的师生关系是什么?
    预备作业03:安装虚拟机
    足球运动训练心得及经验分析-c语言学习调查
    我期望的师生关系
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/5958218.html
Copyright © 2011-2022 走看看