zoukankan      html  css  js  c++  java
  • 初识socket

    通过简单学习C/S网络构架与网络通信流程.知道:端口+IP能够确定一台电脑上的某一个应用程序.

    以访问京东为例,可以分析出需要一个服务器端和一个客户端.

    Server端:

    #导入socket模块
    import socket
    server = socket.socket()            #创建socket对象,创建了一个手机
    ip_port = ('192.168.12.11',8002)    #给程序设置一个ip地址和端口号,买了个手机卡
    server.bind(ip_port)                #绑定ip地址和端口,插卡
    server.listen()                     #监听ip地址和端口,简称开机
    print('111111')                     #测试程序等待执行到哪
    conn,addr = server.accept()         #等待建立连接, conn是连接通道,addr是客户端的地址,阻塞程序
    print('222222')
                                        #服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KB
    from_client_msg = conn.recv(1024)
    
    print('高旺说:',from_client_msg.decode('utf-8'))
    
    to_client_msg = input('高旺的女朋友说:')
    
    conn.send(to_client_msg.encode('utf-8')) #回复消息:通过send方法,参数必须是字节类    型的,
    
    conn.close()                         #关闭通道,关电话,通过close方法
    server.close()                       #关闭socket对象,关机
                                        
    

    注:服务器端是通过通道(conn)来回复消息(发送消息)  

    Client端:

    #导入socket
    import socket                                       #创建一个socket对象
    client = socket.socket()                         #找到服务端的ip地址和端口
    server_ip_port = ('192.168.12.11',8002)  
    client.connect(server_ip_port)          #连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
    to_server_msg = input('高旺说:' client.send(to_server_msg.encode('utf-8')) #发消息,用的send方法,但是调用者是client的socket对象
    from_server_msg = client.recv(1024)
    print('高旺的女朋友说:',from_server_msg.decode('utf-8'))
    client.close()

     注:客户端是建立的对象.send信息

    2.  一直对话的程序

          server收一个发一个
          client发一个收一个
    服务器端:
    import socket
    server = socket.socket()
    ip_port = ("127.0.0.1",8006)
    server.bind(ip_port)
    server.listen()
    conn,addr = server.accept()#等待建立连接
    while 1:
        from_client_msg = conn.recv(1024)
        print("客户端说:",from_client_msg.decode("utf-8"))
        server_send_msg = input("服务器说:")
        conn.send(server_send_msg.encode("UTF-8"))
    

      服务器建立对象,绑定ip和端口,监听;接受建立通道和地址;

    客户端:

    import socket
    client = socket.socket()
    client.connect(("127.0.0.1",8006)) #建立连接
    while 1:
        to_server_msg = input("客户端说:")
        client.send(to_server_msg.encode("utf-8"))
        from_server_msg = client.recv(1024).decode("utf-8")
        print("服务器说:",from_server_msg)
    

      客户端对象,连接服务器ip和端口.

  • 相关阅读:
    Rman-10038: Database Session For Channel D1 Terminated Unexpectedly
    MySQL从入门到项目实践 pdf下载
    Oracle_优化器使用(oracle11g)
    当sqlserver启用sa账户时,出现Microsoft SQL Server 错误代号: 15535 解决方法 (转)
    sqlserver 如何分析“死锁调度程序”转储?
    AtCoder Beginner Contest 213
    LOJ
    [学习笔记] 计算几何
    [COCI 2009-2010 #6] XOR
    BZOJ
  • 原文地址:https://www.cnblogs.com/kevin-red-heart/p/10222672.html
Copyright © 2011-2022 走看看